如果我在代码块内,有没有办法为变量分配隐藏值?
<%
//doing stuff here in addition
Response.Write(Html.Hidden('test'));
// i wanna do something like this
var myVar = Response.Write(Html.Hidden('test'));
%>
这是我正在尝试做的事情:我正在准备提交表单的javascript,但我想在我的下拉列表中选择所选内容并将其分配给将通过TempData [“myObj”的对象中的属性“]。
答案 0 :(得分:0)
从我对这个问题的阅读中,你想要获取一个在下拉列表中选择的值,最后将它分配给控制器TempData集合中某个对象的属性 - 是吗?< / p>
假设它是,你在MVC中最好的选择是将你要放在TempData中的对象作为你要发布表单的action方法的参数,并让MVC绑定系统填充对象的属性for您。然后,您可以在操作方法中将对象添加到TempData:
[HttpPost]
public ActionResult ActionMethod(MyObject myObj)
{
this.TempData["myObj"] = myObj;
return this.View();
}
要使绑定起作用,对象的属性必须具有一个名称(不区分大小写)与包含其值的表单字段的名称匹配。如果属性名称和下拉列表名称不匹配,则可以使用JQuery将下拉列表值复制到具有正确名称的隐藏字段中,如下所示提交表单:
$("#formId").submit(function() {
// Where you have a hidden field with id 'PropertyName':
$("#PropertyName").val($("#dropDownListId").val());
return true;
});
希望有一些帮助,而且我并没有完全错误的想法:)