Asp.net mvc 2 MVC-在[HttpPost]方法中接收更改事件时选择的Dropdownlist值
嘿。。 更改事件时如何在[HttpPost]方法中接收选定的Dropdownlist值?我总是用[HttpGet]方法接收它Asp.net mvc 2 MVC-在[HttpPost]方法中接收更改事件时选择的Dropdownlist值,asp.net-mvc-2,html-helper,html.dropdownlistfor,Asp.net Mvc 2,Html Helper,Html.dropdownlistfor,嘿。。 更改事件时如何在[HttpPost]方法中接收选定的Dropdownlist值?我总是用[HttpGet]方法接收它 <%: Html.DropDownListFor(model => model.TipTpa, ViewData[ArtikliKonstante.vdListaTipovaTPa] as IEnumerable<SelectListItem>, new { onchange = "location.href='/
<%: Html.DropDownListFor(model => model.TipTpa, ViewData[ArtikliKonstante.vdListaTipovaTPa] as IEnumerable<SelectListItem>,
new { onchange = "location.href='/Artikli/PromjenaTipa? p='+this.value"})%>
model.TipTpa,ViewData[ArtikliKonstante.vdlistatipovata]作为IEnumerable,
新的{onchange=“location.href=”/Artikli/PromjenaTipa?p=“+this.value”})%%>
如果我将我的方法声明为[HttpPost],我会得到一个错误,该操作不存在。有什么想法吗?
Thx如果您希望调用正确的操作,则需要发布。在您的情况下,您只需重定向(window.location.href)即可发送GET请求 因此,您可以将下拉列表放置在表单中,并在选择更改时使用javascript提交表单:
<% using (Html.BeginForm("PromjenaTipa", "Artikli", FormMethod.Post, new { id = "myform" })) { %>
<%: Html.DropDownListFor(
model => model.TipTpa,
ViewData[ArtikliKonstante.vdListaTipovaTPa] as IEnumerable<SelectListItem>,
new { id = "tipTpa" }
) %>
<% } %>
这将把表单发布到PromjenaTipa
操作中,您可以在其中读取所选值:
[HttpPost]
public ActionResult PromjenaTipa(string tipTpa)
{
// tipTpa should contain the selected value
...
}
另一种可能是在变更事件中发送AJAX查询。在这种情况下,您不需要表单,因为您可以使用AJAX发送POST请求
[HttpPost]
public ActionResult PromjenaTipa(string tipTpa)
{
// tipTpa should contain the selected value
...
}