Я использую ASP.net MVC5 и у меня есть следующие:Route Атрибут не производит довольно URL-
[Route("Edit/{id}")]
[HttpGet]
public ActionResult Edit(int id)
{
// do stuff
return View(viewModel);
}
[Route("Edit")]
[HttpPost]
public ActionResult Edit(DraftViewModel draft)
{
if (!ModelState.IsValid) return View(draft);
// do stuff
return RedirectToAction("Index");
}
Я ожидал, что это производит довольно URL, как это:
Проект/Edit/5
вместо этого я получаю это:
Draft/Edit? Id = 5
Почему это? Как получить красивые URL-адреса с маршрутизацией на основе атрибутов? Код, который создает связь с уродливыми URL, заключается в следующем:
@Html.ActionLink("Edit", "Edit", "Draft", new { id = draft.Id }, new { @class = "btn btn-primary btn-xs" })
UPDATE
Когда я удалить [POST]
Action и только [GET]
(не полезно, конечно), URL-адрес на GET выглядит довольно! Таким образом, это когда у меня есть два маршрута с одним и тем же именем (но разные глаголы), с которыми работает рама!
Что производит 'Проект/Edit ID = 5'? Можете ли вы поделиться этим кодом? – Shyju
@Shyju Я добавил, что код – Ciwan