我已经参加了很多论坛来寻求解决方案,但徒劳无功。
我的问题是:
我在名为CallUser的家庭控制器中有一个操作。我通过ajax称呼它。
我的网址看起来像mydomain.com/Home/CallUser
我想要我的网址,例如mydomain.com/CallUser
我不想使用“ / Home”来访问任何操作
所以我添加了自定义路由
routes.MapRoute(
"Custom",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Ajax呼叫:
function CallUser()
{
var mobNum = $('#userMobileNo').val();
var isValidNumber=validatePhone(mobNum);
if(isValidNumber)
{
$.ajax({
url: "../Home/CallUser",
type: "POST",
data: JSON.stringify({ destinationNumber: mobNum }),
datatype: "json",
traditional: true,
contentType: "application/json; charset=utf-8",
success: function (data) {
},
error: function (err) {
},
failure: function(err)
{
}
});
}
else
{
}
}
家庭控制器中的Call to Blog操作
@Html.ActionLink("Blog", "Blog", "Home")
最佳答案
不要仅仅因为不喜欢URL而破坏标准的MVC模式,只需创建一个UserController
并执行一个Call
操作,以便该URL变得可读:
"../User/Call"
然后,将其借给以下URL:
"../User/Hangup"
"../User/GiveAbuse"
"../User/Ignore"
"../User/WhyDontTheyEverCall"
控制器旨在包含问题域的一部分(在这种情况下,所有与用户有关的操作),所以为什么要采用MVC的方式:)