Html.Action - получить против почты
Я делаю это очень часто:
<div id='Product'>
@Html.Action("Create", "Product")
</div>
это удобно, потому что я могу делегировать картину формы создания продукта другому действию контроллера для внедрения в местах. Однако у меня возникают проблемы с тем, что метод иногда (я не понял, при каких условиях) вызывать [HttpPost] моего действия с контроллером, что, конечно, терпит неудачу.
Есть ли способ заставить @Html.Action() вызывать версию GET?
Ответы
Ответ 1
Способ Html.Action
заключается в том, что если текущий запрос для страницы является методом post, то он будет искать метод с именем HttpPost
.
Итак, что происходит, когда вы загружаете текущую страницу, и действие также предполагает, что все действия, которые должны выполняться, также должны быть POST.
Я не знаю, как заставить его переключиться на другой метод.
Ответ 2
Попробуйте добавить атрибут AcceptVerbs
к вашему действию:
[AcceptVerbs(HttpVerbs.Get|HttpVerbs.Post)]
public ActionResult Create()
{
//Your code
}
Это будет работать как для запросов GET, так и для POST.
Ответ 3
У меня тоже возникла аналогичная проблема, и действительно есть решение.
Просто проверьте, получает ли запрос или POST в представлении, используя свойство IsPost и VOILA....
@if(!IsPost)
{
HTML.Action("ActionName")
}
Относительно того, кто попал в подобную проблему...
Ответ 4
Я только что столкнулся с этой проблемой, которую трудно было определить. Вместо этого я использовал Html.RenderPartial, например:
<div id='Product'>
@{Html.RenderPartial("_CreatePartial", new Product());}
</div>