在视图中创建变量并赋值



>我需要在我的视图中创建一个字符串变量,并分配给绑定到强类型模型上的属性的隐藏输入

我想是这样的

@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');

最新更新