我已经参加了很多论坛来寻求解决方案,但徒劳无功。
我的问题是:

我在名为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的方式:)

10-07 17:42