2011-05-14 81 views
0

如果我在代码块内有没有办法将一个隐藏值赋给变量?html.hiddenvalue将其分配给变量

<% 
//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

你想知道如何访问JavaScript中的隐藏字段或者你想知道如何在C#中获取/设置值? – klabranche 2011-05-14 20:36:35

回答

0

从我读到的问题中,您想要从下拉列表中选择一个值,并最终将其分配给控制器的TempData集合中某个对象的属性 - 是吗?

假设是这样的话,MVC中最好的选择就是让你想放入TempData的对象作为你发布表单的action方法的参数,让MVC绑定系统填充对象的属性为你。然后,您可以将对象添加到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; 
}); 

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

+0

感谢您的洞察! – Rod 2011-05-14 21:31:07

+0

非常欢迎:) – 2011-05-14 21:42:23