Как мне получить значение My dropdownlist на контроллер с помощью asp.net mvc - PullRequest
2 голосов
/ 20 августа 2010

Привет, у меня есть этот код на мой взгляд ..

<%=Html.DropDownList("ProductTemplate",new SelectList(Model.ProductTemplate,"Value","Text"))%>

Я знаю, находится ли этот выпадающий список между отправкой BeginForm, я могу получить доступ к значению в Controller, используя collection["ProductTemplate"];

если его нет в моем beginForm, я все еще могу получить доступ к этому выбранному значению в контроллере?

спасибо

Ответы [ 2 ]

3 голосов
/ 20 августа 2010

Вы можете использовать AJAX для отправки значения текущего выбранного элемента в действие контроллера.Это довольно тривиально с jQuery:

$.post('/home/foo', { productTemplate: $('#ProductTemplate').val() }, function(data) {
    alert(data.success);
});

А чтобы получить доступ к выбранному значению в действии вашего контроллера, просто используйте параметр:

[HttpPost]
public ActionResult Foo(string productTemplate)
{
    // TODO: do something with the selected productTemplate
    return Json(new { success = true });
}
1 голос
/ 20 августа 2010

Если элемент управления находится не внутри тега формы, вы не получите его значение в контроллере. Обходной путь может быть.

1) Создать скрытое поле внутри формы

2) Событие OnChange вашего выпадающего присваивает выбранное значение скрытому полю

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

<%=Html.DropDownList("ProductTemplate",new SelectList(Model.ProductTemplate,"Value","Text"),new {@onchange="setVal()"})%>
.
.
<form>
.
.
<input type="hidden" id="myval" name="myval"/>
.
.
</form>
<script type="text/javascript">
function setVal()
{
$("#myval").val($("#ProductTemplate").val());
}
</script>

теперь в вашем контроллере вы можете получить значение как collection["myval"]

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