将Javascript变量放入Razor代码中
Place Javascript Variable within Razor Code
我有一个JavaScript函数,它将一行添加到表中,并在文本框中选择值。但是我如何将选中的值放入razor代码中呢?
var val = document.getElementById("tags").value;
var strHtml2 = '@Html.TextBoxFor(x => x.extraDoc.dr_name, new {Value="Place Val Here", @class = "input1", @readonly = true })';
不,这是不可能的,因为。net MVC是服务器端代码,在发送到客户端之前进行评估,而javascript是客户端代码,仅在客户端上运行一次。
实际上你可以做一件事你可以通过使用Id获取元素
@Html.TextBoxFor(x => x.extraDoc.dr_name, new {Value="Place Val Here", @class = "input1", @readonly = true })
Razor将为textbox生成id字段,id可能是这样的:extraDoc_dr_name
(或)你可以在浏览器开发工具中找到它。
则可以使用javascript:
document.getElementById("extraDoc_dr_name").value = document.getElementById("tags").value;
试试这个:
var val = document.getElementById("tags").value;
var strHtml2 = '@Model.extraDoc.dr_name' ;
更新:现在我明白你要归档什么了。
不,你不能在razor代码中混合js变量。你可以将razor值传递给js变量,但不能将js变量传递给razor变量