У меня есть это действие:
public ActionResult AddCategory(Category newCategory)
{
...//newCategory.Name is filled up
return new Json(true);
}
И посмотреть этот пост в этом действии:
@using(Html.BeginForm)
{
@Html.TextBoxFor(Model.Name)
.....
}
Теперь я хочу повторно использовать это действие, но на другой странице.
Но в этом новом представлении у меня уже есть Html.TextBox («имя») в другом. Это своего рода DashBoard.
Это новый вид, есть свойство NewCategory внутри модели:
public class MyViewModel
{
public Category NewCategory{get;set;}
}
Если я сделаю это:
@using(Ajax.BeginForm)
{
@Html.TextBoxFor(Model.NewCategory.Name)
.....
}
Не сработает, потому что мои действия не ожидают префикса, в данном случае NewCategory.
Конечно, я могу вручную вызвать Действие, но при этом я потерял встроенную проверку (я использую DataAnnotation с ненавязчивой проверкой).
Это сценарий, на который я падаю время от времени
Лучший выбор, который у меня сейчас есть, это дублирование Действие:
public ActionResult AddCategory([Bind(Prefix="NewCategory")]Category category)
{
...
return new Json(true);
}