【问题标题】:Place Javascript Variable within Razor Code在 Razor 代码中放置 Javascript 变量
【发布时间】:2014-06-20 01:54:22
【问题描述】:

我有一个 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 })';

【问题讨论】:

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


    【解决方案1】:

    试试这个:

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

    更新:

    现在我了解您要归档的内容。

    不,您不能在 razor 代码中混合 js 变量。您可以将 razor 值分配给 js 变量,但不能将 js 变量分配给 razor 变量(afaik)

    【讨论】:

    • 我怎样才能为带有 javascript 变量的剃须刀文本框动态生成 id 呢?
    【解决方案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;
    

    【讨论】:

    • 如果我想动态添加id,我应该怎么做。就像每次我添加一行一样,id 类似于“name”+count,其中 count 是一个 javascript var。
    • 这不是最佳实践,但您可以使用 javascript document.getElementById("extraDoc_dr_name").setAttribute("id","test") 设置 id 属性
    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多