繁体   English   中英

我如何需要使用asp.net mvc将我的下拉列表框值获取到控制器

[英]How do I need to get My dropdownlist box value to the controller using asp.net mvc

嗨,我认为该代码是..

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

我知道此下拉列表框是否介于BeginForm提交之间,我可以使用collection["ProductTemplate"];访问Controller中的值collection["ProductTemplate"];

如果它不在我的beginForm中,我仍然可以在控制器中访问此选定的值?

谢谢

您可以使用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 });
}

如果控件不在form标记内,则不会在controller中获得其值。 解决方法可能是。

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"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM