3

我确实喜欢使用 T4MVC 和它的强类型 URL,并且想在 JS 中使用它们,但是有一些问题。假设我想将一个 url 加载到一个 div 中:

$('#mydiv').load("@Url.Action(MVC.Home.Index())");  //that works

但是,如果我的操作是用一些 js 属性值参数化的呢?

public ActionResult Index2(int id){}

var id = $('#mydiv').attr('index');
$('#mydiv').load("@Url.Action(MVC.Home.Index2(id))");  //this certainly doesn't work, since "id" is a JS variable
$('#mydiv').load("@Url.Action(MVC.Home.Index2(-1))".replace("-1", id));  //this is a workaround I use now, but don't like it :)

但是,如果我的参数不是 int 而是 Guid,则解决方法会变得很难看,因为 guid-default 值太长..

其他解决方案是什么?谢谢

4

1 回答 1

4

一般的方法可能没问题。对于指导案例,您可以更改:

@Url.Action(MVC.Home.Index2(-1))

@Url.Action(MVC.Home.Index2().AddRouteValue("id", -1))

这样你就可以绕过类型系统,并且可以传递你想要的任何虚拟值。

于 2011-10-26T04:24:42.213 回答