【问题标题】:embed MVC script block in jQuery在 jQuery 中嵌入 MVC 脚本块
【发布时间】:2013-04-07 05:57:52
【问题描述】:

我正在尝试在 jQuery 脚本中混合 MVC2 脚本块。它接受用户输入,使用 Url.RouteUrl() 更改表单操作属性,并在文本框失去焦点时发布表单。这是 appScript.js 文件的一部分

$("input#txtSSN").blur(function () {
    if ($(this).val() != undefined && jQuery.trim($(this).val()).length != 0) {
        alert('txtSSN.blur() = ' + $(this).val());
        var formAction = '<%:Url.RouteUrl(new { controller = "controller1", action = "SSN", ID = escape(jQuery.trim($(this).val())) }) %>';
        $(this).parents('form:first').form.attr('action', formAction);
        $(this).parents('form:first').submit();
    } //if
}); //blur

这个 .js 被引用到 Site.master "script src=" 块。一切正常,除了它没有发布带有更新的href的表单。感谢您的帮助。

【问题讨论】:

  • MVC2 代码在页面传送到客户端浏览器之前在您的服务器上运行。一旦它在浏览器中,您希望它如何运行该脚本块代码?它位于远离服务器的计算机中。
  • 服务器不应该评估使用 Url.RouteUrl() 的服务器脚本部分,然后将 html 字符串刷新到客户端浏览器吗?我认为它会生成“/controller1/SSN/1234”。我认为这是因为我在 .js 文件中使用它,而不是在 aspx 文件的
  • 没错。不要在 javascript 中创建 formAction。在 HTML 中有一个 formAction,如果必须,请使用 javascript 提交表单。

标签: javascript jquery asp.net-mvc


【解决方案1】:

您只能在 aspx 文件中使用服务器代码块,而不能在外部 .js 文件中使用

【讨论】:

  • 如何在 .js 文件中实现相同的 Url.RouteUrl() 结果?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2017-04-12
相关资源
最近更新 更多