Я очень новичок в MVC - шаблоне дизайна, а также Framework. Я также не очень хорошо разбираюсь в основах форм ASP.NET. Однако я понимаю основы веб-разработки и HTTP-сообщения и GET.
Теперь, я проходил несколько учебных руководств MVC, и я, хотя я хорошо разбираюсь в том, как работает MVC, а также как работает "Маршрутный движок". Затем неожиданно я натолкнулся на код, который выглядит следующим образом:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel());
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
return Content("Thanks", "text/html");
}
}
У меня есть несколько вопросов, на которые он смотрит:
- Мое понимание механизма маршрутизации состояло в том, что элемент управления передается конкретному ActionMethod на основе URL-адреса, и обычно URL-адрес - это в основном тип Controller/ActionMethod/Id, где параметр menthod - скорее примитивные типы. В этом примере выше, какой URL-адрес потребуется для вызова "
общедоступный индекс ActionResult (модель MyViewModel)? "
Так как NyViewModel является сложным типом, вы не можете передать его как часть URL-адреса. Как вы можете это назвать?
- Почему этот второй метод украшен [HttpPost], когда первый метод не требует каких-либо атрибутов? Существуют ли какие-либо рекомендации о том, когда использовать атрибуты [Http], а когда нет?
Я думаю, что в головоломке отсутствует большой кусочек, и оба вопроса взаимосвязаны. Тем не менее, нужна помощь в понимании отношений