Как правильно вызвать ActionResult с параметром, который возвращает представление
У меня есть этот код, который возвращает представление:
public ActionResult Survey(int idProject, string name)
{
return View(Surveys.Data.Services.Project.GetAllSurveys(idProject));
}
Когда я звоню это от клиента с
@Url.Action("Survey", "Project", new { idProject = project.IdProjet, name = project.Nom })
URL появляется с параметрами ? IdProject=2&name=work, который, как мне сказали, не является правильным способом работы в MVC.
Я не думаю, что вызов ajax был бы здесь полезен, так как я возвращаю представление клиенту.
Итак, как мне назвать этот опрос ActionResult?
2 ответа
Решение
Добавьте следующее к вам RouteConfig.cs
файл до маршрута по умолчанию
routes.MapRoute(
name: "ProjectSurvey",
url: "Project/Survey/{idProject}/{name}",
defaults: new { controller = "Project", action = "Survey" }
);
Если вы хотите, чтобы URL был похож на Survey/Project/2/work, вам нужно изменить значение маршрута следующим образом:
routes.MapPageRoute("Default",
"{controller}/{action}/{idProject}/{name}",
"new { yourcontroller, youraction, UrlParameter.Optional, UrlParameter.Optional");