【发布时间】: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