将Javascript变量放在Razor代码中

时间:2014-05-03 11:57:32

标签: c# javascript asp.net-mvc asp.net-mvc-4 razor

我有一个JavaScript函数,它在表格中添加一行,并在文本框中显示所选值。但是我如何将所选值放在剃刀代码中?

var val = document.getElementById("tags").value;
var strHtml2 = '@Html.TextBoxFor(x => x.extraDoc.dr_name, new {Value="Place Val Here", @class = "input1", @readonly = true })';

2 个答案:

答案 0 :(得分:2)

试试这个:

var val = document.getElementById("tags").value;
var strHtml2 = '@Model.extraDoc.dr_name'  ;

更新

现在我明白了你要归档的内容。

不,你不能在razor代码中混合使用js变量。你可以将一个剃刀值赋给一个js变量,但不能将一个js变量赋予一个剃刀变量(afaik)

答案 1 :(得分:2)

不可能,因为.NET MVC是服务器端代码,在被发送到客户端之前被评估,而javascript是客户端代码,只有在客户端上运行时才会运行。

实际上你可以通过 Id 来做一件事你可以获得元素。

@Html.TextBoxFor(x => x.extraDoc.dr_name, new {Value="Place Val Here", @class = "input1", @readonly = true })

Razor会为TextBoxFor生成id字段,因为id可能是这样的:extraDoc_dr_name(或)你可以在浏览器开发工具中找到它。

然后你可以使用javascript设置它:

document.getElementById("extraDoc_dr_name").value = document.getElementById("tags").value;