Asp.net mvc 在JS函数中使用T4MVC
以下面的脚本为例。注意字符串“/Home/Index”。使用T4MVC,有没有一种方法可以指定它来摆脱这个神奇的字符串Asp.net mvc 在JS函数中使用T4MVC,asp.net-mvc,asp.net-mvc-3,t4,t4mvc,Asp.net Mvc,Asp.net Mvc 3,T4,T4mvc,以下面的脚本为例。注意字符串“/Home/Index”。使用T4MVC,有没有一种方法可以指定它来摆脱这个神奇的字符串 <script type="text/javascript"> $(document).ready(function () { $dialog = $('#dialog'); $dialog.dialog({ autoOpen: false, buttons: { },
<script type="text/javascript">
$(document).ready(function () {
$dialog = $('#dialog');
$dialog.dialog({
autoOpen: false,
buttons: { },
open: function(event, ui) {
$(this).load("/Home/Index");
}
});
});
</script>
$(文档).ready(函数(){
$dialog=$(“#dialog”);
$dialog.dialog({
自动打开:错误,
按钮:{},
打开:功能(事件、用户界面){
$(this.load(“/Home/Index”);
}
});
});
执行以下操作
$(this).load('<%:Url.Action("index","home") %>');
$(this.load(“”);
如果您的视图使用的是Razor,那么就是这样
@Url.Action(MVC.Home.Index())
所以你的剧本是
<script type="text/javascript">
$(document).ready(function () {
$dialog = $('#dialog');
$dialog.dialog({
autoOpen: false,
buttons: {},
open: function (event, ui) {
$(this).load("@Url.Action(MVC.Home.Index())");
}
});
});
</script>
$(文档).ready(函数(){
$dialog=$(“#dialog”);
$dialog.dialog({
自动打开:错误,
按钮:{},
打开:功能(事件、用户界面){
$(this.load(“@Url.Action(MVC.Home.Index())”);
}
});
});
如果脚本位于单独的.js文件中(不在Razor视图中),则可以使用它来处理该情况
这与Skuld的示例几乎相同:
$(this).load(MvcActions.Home.Index());
但它将是纯Javascript
(T4MvcJs将生成一个js帮助程序-非常类似于T4MVC)这不是使用T4MVC,这只是按照正常方式进行的。我相信,请求在找到目标之前会经过路由过程,路由负责生成url。它会,但问题是url.Action(string,string)不是T4MVC,是MVC的正常做法。T4MVC部分是关于用编码值替换“魔术字符串”,这样当重命名控制器/操作时,您会得到编译时错误,而不是运行时错误。文档对它进行了最好的解释,它看起来像是我需要使用的另一个nuget包。