Подтвердить что ты не робот

Html.Action - получить против почты

Я делаю это очень часто:

<div id='Product'>
@Html.Action("Create", "Product")
</div>

это удобно, потому что я могу делегировать картину формы создания продукта другому действию контроллера для внедрения в местах. Однако у меня возникают проблемы с тем, что метод иногда (я не понял, при каких условиях) вызывать [HttpPost] моего действия с контроллером, что, конечно, терпит неудачу.

Есть ли способ заставить @Html.Action() вызывать версию GET?

4b9b3361

Ответ 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>