Как я могу получить значение, выбранное в @ Html.DropDownList в MVC3 - PullRequest
0 голосов
/ 19 октября 2011

У меня есть этот код, как я могу получить выбранное значение @htmlDropDownList, чтобы поместить это значение в мой @ Url.Action вместо 1 , я прочитал, используя javascript o jquery, но я не могу понятьКак я могу сделать это в представлении напрямую, и это не работает для моего

var idempresa = $('IdEmpresa').val()
<a href="@Url.Action("List","Script")?idempresa=**idempresa**"

код:

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Script</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.IdEmpresa, "Empresa")
        </div>
        <div class="editor-field">
            @Html.DropDownList("IdEmpresa", String.Empty )
            @Html.ValidationMessageFor(model => model.IdEmpresa)
        </div>
    </fieldset>


}


  href="@Url.Action("List","Script")?idempresa=**1**" 

pd.спасибо за помощь

Редактировать:

  @using System.Web.Mvc.Html
@model SistemaDispositivos.Models.Script

@{
    ViewBag.Title = "Script";
}

<h2>Script</h2>
<script src="../../Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Script</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.IdEmpresa, "Empresa")
        </div>
        <div class="editor-field">
            @Html.DropDownList("IdEmpresa", String.Empty)
            @Html.ValidationMessageFor(model => model.IdEmpresa)
        </div>
    </fieldset>
}

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        var url1 = '@Url.Action("List","Script")?idempresa=';
        $('IdEmpresa').change(function() {
            $urlId = $('urlid');
            $urlId.attr('href', url + $(this).val());
        });
    });

</script>


<a id="urlid" href="@Url.Action("List","Script")?idempresa=url1"> </a>

Чего не хватает?

Ответы [ 3 ]

2 голосов
/ 20 октября 2011

хорошо, теперь это работает, вот что я хотел поблагодарить за помощь:

    @using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Script</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.IdEmpresa, "Empresa")
        </div>
        <div class="editor-field">
            @Html.DropDownList("IdEmpresa", string.Empty  )
            @Html.ValidationMessageFor(model => model.IdEmpresa)
        </div>
    </fieldset>
}

<script type="text/javascript" language="javascript">
    function valid() {
        var listaScriptUrl = '@Url.Action("List", "Script", new { idempresa = 0})';
        var input = $('#IdEmpresa').val();
        $('#Lista-Script').load(listaScriptUrl.replace('0', input));
    }
</script>

 <input type="button" value="Click Here" onclick="valid()">

<div id="Lista-Script">

</div>

так что теперь в div Lista-Script, когда я нажимаю кнопку, я получаю свое представление, которое я хотел

0 голосов
/ 19 октября 2011

Я бы подошел к этому так же, как опубликованные Bipins, за одним серьезным исключением.

<fieldset>
    <legend>Script</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.IdEmpresa, "Empresa")
    </div>
    <div class="editor-field">
        @Html.DropDownList("IdEmpresa", *This needs to be a list of ListItems*, new { id = "idEmpresa" })
        @Html.ValidationMessageFor(model => model.IdEmpresa)
    </div>
</fieldset>

$(document).ready(function()
{
    var url = '@Url.Action("List","Script")?idempresa=';
    $('#idEmpresa').change(function()
    {
        $urlId = $('urlid');
        $urlId.attr('href', $urlId.attr('href') + $('this').val());
    }
});

Кэшируя исходный URL-адрес в переменной js, вы всегда можете добавить к нему чистый лист.

0 голосов
/ 19 октября 2011

Представление будет отображать HTML, поэтому вы не сможете получить выбранное значение раскрывающегося списка и вернуть его в переменную представления, которое уже выполнено на стороне сервера.Что вы можете сделать, это добавить идентификатор в тег и обновить href при изменении события выпадающего списка.

$(document).ready(function(){
   $('IdEmpresa').change(function(){
         var val = $(this).val();
         var newurl = $("urlid").attr("href") + val;
         $("urlid").attr("href",newurl);
   });
});

<a id="urlid" href="@Url.Action("List","Script")?idempresa="> </a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...