MVC String в ActionResult - PullRequest
       38

MVC String в ActionResult

2 голосов
/ 02 декабря 2011

Я использую контроллер по умолчанию с именем «Home».

У меня есть следующий ActionResult:

public ActionResult SetID(string ID)
{
    int? result = MyGateway.GetAccountByID(ID);
    Common.IDNum = result;
    return View("Index","Home");
}

Я хотел бы передать номер ID как:

http://localhost:3314/Home/SetID/AA3420

... а не как ...

http://localhost:3314/Home/SetID?ID=AA3420

Ссылка выше начинается с представления, возвращающего список. Чтобы выбрать запись, они нажимают «Выбрать», которая является ссылкой выше. В настоящее время я устанавливаю «AA3420» в переменную сеанса, расположенную в файле CS в другом месте с именем Common.cs.

Как мне сделать так, чтобы мой URL выглядел так: http://localhost:3314/Home/SetID/AA3420?

Ответы [ 2 ]

3 голосов
/ 02 декабря 2011

Регистрируя следующий маршрут в global.asax Application_Start:

 var routes = RouteTable.Routes;

 routes.MapRoute(
            "ID Action", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new {controller = "Home", action = "SetID", ID = ""} // Parameter defaults
            );
0 голосов
/ 02 декабря 2011

Загляните в свой Global.asax. Там вы определяете маршрут по умолчанию и параметр по умолчанию. Как это:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
...