Передача выбранного значения раскрывающегося списка из вида в контроллер - PullRequest
0 голосов
/ 05 июня 2011

В моем asp.net MVC2-представлении есть выпадающий список:

<% using(Html.BeginForm("temp","Settings")){ %>
    <%= Html.DropDownList("drpFields", new SelectList(Model.Fields, "FieldID", "NiceName", whiteout.FieldID)) 
}
%>

, и я хочу передать выбранное значение из вида в действие контроллера.Как мне изменить это:

 <a class="icon-button-success" href='<%: Url.Action("EditWhiteOut", "Settings", new {FieldId = 1}) %>'>
     <img src='<%: Url.Content("~/static/Images/update.png") %>' alt="Update" />
 </a>

Я хочу передать выбранное значение раскрывающегося списка в FieldId.

Ответы [ 2 ]

0 голосов
/ 05 июня 2011

и как насчет это вызовет отправку javascript формы и кнопку предоставления, если js не включен

<% using (Html.BeginForm(youraction)) {%>

<select name='myfield' onchange='this.form.submit()'>
<option .... >
...
</select>
<noscript><input type="submit" value="Submit"></noscript>
<%}%>

или используя ваш код: используйте jquery для обновления значения отправки значения, в этом случае JavaScript:

var link = Url.Action("EditWhiteOut", "Settings");

JQuery

function toCallOnChange(){
 var linkParameter = $("#id of object").val();
 $("a.icon-button-success").attr("href", link+"\"+linkParameter ); //which will overwrite default value to current link
}


 <a class="icon-button-success" href='#'>
     <img src='<%: Url.Content("~/static/Images/update.png") %>' alt="Update" />
 </a>
0 голосов
/ 05 июня 2011

Если вы хотите использовать Ajax, вы можете отказаться от формы, если хотите использовать jQuery.ajax.Возможно, вы захотите присвоить своему якору значение для его свойства ID (в моем примере ниже используется только его атрибут class)

Но, поскольку вы хотите сделать обычную обратную передачу, вы захотите использовать другую перегрузку Html.BeginForm чтобы вы могли указать атрибут ID для формы (я указал имена параметров на случай, если вы не знакомы с этой перегрузкой)

Html.BeginForm(actionName: "temp", controllerName: "Settings", 
    method: FormMethod.POST, htmlAttributes: new { id = "MyForm" })

И jQuery, использованный для того, чтобы ваша ссылка отправила форму, создастстандартная подача.Таким образом, пока ваш список выбора имеет атрибут name, его значение будет включено в полезную нагрузку поста.

$(function () {
    $('.icon-button-success').click(function (e) {
        $('#MyForm').submit();
        // you might not need preventDefault, but I can't remember if 
        // it will create a second post or not
        e.preventDefault();
    });
});

Если вы все равно хотите выполнить перенаправление (используя метод $.ajax), вывсегда можно сделать window.location.href='redirect/link'; внутри функции success в вызове $.ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...