Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在JS函数中使用T4MVC_Asp.net Mvc_Asp.net Mvc 3_T4_T4mvc - Fatal编程技术网

Asp.net mvc 在JS函数中使用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: { },

以下面的脚本为例。注意字符串“/Home/Index”。使用T4MVC,有没有一种方法可以指定它来摆脱这个神奇的字符串

<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包。