html.hidden值将其赋值给变量

时间:2011-05-14 20:08:59

标签: c# asp.net-mvc

如果我在代码块内,有没有办法为变量分配隐藏值?

<%
//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”的对象中的属性“]。

1 个答案:

答案 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;
});

希望有一些帮助,而且我并没有完全错误的想法:)