Rak*_*e36 5 asp.net-mvc jquery
我有一个真正简单的问题,但似乎无法弄明白.
由于MVC构建URL的方式(包括所有路由信息),以下内容不起作用.我希望pathname只返回虚拟目录路径.
当用户从下拉列表中选择ID时,我正在做的是重定向到不同的路由.
$(document).ready(function() {
$('#TransactionIds').change(function() {
document.location = window.location.pathname + "/CeuTransaction/Index/" + $('#TransactionIds').val();
});
});
Run Code Online (Sandbox Code Playgroud)
tva*_*son 10
使用UrlHelper构建路径.它将考虑应用程序相对于Web服务器根目录的位置.
$(document).ready(function() {
$('#TransactionIds').change(function() {
document.location = '<%= Url.Action( "Index", "CeuTransaction" ) %>'
+ '/'
+ $('#TransactionIds').val();
});
});
Run Code Online (Sandbox Code Playgroud)
替代方案:分为两部分,以便函数可以包含在javascript库中(仍然需要从视图或主控调用).通过一些工作,您也可以将其作为jQuery扩展.
function redirectOnChange( selector, action )
{
$(selector).change( function() {
document.location = action + '/' + $(selector).val();
});
}
Run Code Online (Sandbox Code Playgroud)
在视图中:
$(function() {
redirectOnChange('#TransactionIds',
'<%= Url.Action( "Index", "CeuTransaction" ) %>' );
});
Run Code Online (Sandbox Code Playgroud)
这就是我最终做的事情.
在页面中添加了隐藏文本字段:
<input type="hidden" value="<%= Url.Content("~/CeuTransaction/Index/") %>" id="pathname" />
Run Code Online (Sandbox Code Playgroud)
在js脚本库中使用以下内容:
// The following line enables jQuery intellisense
/// <reference path="jquery-1.3.2-vsdoc.js" />
$(document).ready(function() {
$('#TransactionIds').change(function() {
document.location = $('#pathname').val() + $('#TransactionIds').val();
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12798 次 |
最近记录: |