>我需要在我的视图中创建一个字符串变量,并分配给绑定到强类型模型上的属性的隐藏输入
我想是这样的
@Html.HiddenFor(m=>m.nodelist, new {@value = myVar})
但是不起作用
不要尝试在 html 帮助程序上设置 @value
属性。这不是这些帮助程序的设计方式。它们旨在绑定到传递给此视图的视图模型上的相应属性的值。
所以它就像
:@Html.HiddenFor(m => m.nodelist)
在呈现此视图的控制器操作中,您将视图模型上的相应属性分配给所需的值:
public ActionResult Index()
{
MyViewModel model = ...
model.nodelist = someVariable;
return View(model);
}
另一方面,如果这个变量实际上是一个javascript变量,那么你显然应该使用javascript将其分配给隐藏字段:
<script type="text/javascript">
var myVar = 'some value';
$('#nodelist').val(myVar);
</script>
或者如果你没有使用jQuery:
<script type="text/javascript">
var myVar = 'some value';
document.getElementById('nodelist').value = myVar;
</script>
使用简单的HTML隐藏字段,并保持其名称与属性名称相同。这完美地工作
@{
string val=myVar;
}
<input type="hidden" name="nodelist" value="@val" />
myVar 是一个 JavaScript 变量吗?
您可以为隐藏字段分配 ID 属性。
@Html.HiddenFor(m=>m.nodelist, new {@id = "hdnNodeList"})
使用JavaScript或jQuery,您可以执行以下操作。
$('#hdnNodeList').val(myVar);
或者,如果 myVar 是一个 C# 变量,你可以尝试以下操作(这将呈现一个 html 输出,尽管你可以在这里这样做,如果可能的话,最好在控制器中为 m.nodelist 分配一个值)
$('#hdnNodeList').val('@myVar');