繁体   English   中英

URL处理+ MVC 4 + jQuery Ajax + IIS

[英]URL Handling + MVC 4 + Jquery Ajax + IIS

我一直在开发MVC 4应用程序,该应用程序还通过Jquery包含Ajax。 我有一个问题。

例如,如果我单击一个按钮,则onclick事件将触发一个javascript方法。 此方法在.js文件中。

该javascript方法使用Ajax调用一个ActionResult ,该ActionResult接收一些没有特殊要求的参数(字符串,整数)。 所以..可以说我的操作结果在“ PersonController ,其名称为“ Add ”。 所以我想添加一个人。

我的ajax调用中的url属性应为"/Person/Add"并且我的数据应类似于:

var person = new Object();
person.name = "John";
person.id = 1;

data: person

当使用Visual Studio运行应用程序时,这可以正常工作。 但是,当我在IIS中部署它时,出现404错误。

我已经尝试过了 我在布局中添加了<link> <link id="PersonAddURL" href="Url.Content("~/Person/Add") /> ,然后代替使用url: "/Person/Add" ,将其更改为url: $("#PersonAddURL").attr("href")

现在,此方法有效,我认为不是解决此问题的好方法。 应该有另一个更好的选择。 即使我设法解决了问题,我仍然希望有人向我解释这种情况发生的原因。 我不喜欢每个网址都有一个链接标签的想法。

感谢您将来的回答。

我通常要做的是在ASP.NET MVC布局中包含以下全局javascript变量:

<script>var webroot = "@Url.Content("~/")";</script>

然后可以从任何JS文件执行以下操作:

$.post(webroot + "Person/Add", person, function(result){ ... });

只要确保在任何AJAX调用之前声明并初始化webroot变量即可。

如果您在JavaScript中使用名称空间,则可以将其更改为(假设应用名称空间):

<script>app.webroot = "@Url.Content("~/")";</script>

并删除会使开发人员感到不适的全局变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM