У меня проблемы с PartialViews с использованием ASP.NET MVC3 (Razor) и Ajax. Это мой случай:
У меня есть простой тест ViewModel:Дисплей PartialViews не обновлен модель
public class MyModel
{
public string MyText { get; set; }
public int MyNumber { get; set; }
}
Моя цель иметь форму. В зависимости от опубликованных данных я хотел бы отображать разные частичные представления. Я создал основной формой (Индексный просмотр):
@using (Ajax.BeginForm("Index", "Test", new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "testdiv" }))
{
<div id="testdiv">
@Html.Partial("Cat")
</div>
<input type="submit" value="Go" />
}
Я создал две различные частичные виды, которые должны быть показаны, когда основная форма размещена (в зависимости от опубликованных данных): Cat Вид:
<span>cat view</span>
@Html.TextBoxFor(m=> m.MyText)
@Html.TextBoxFor(m=> m.MyNumber)
<span>@DateTime.Now.Second</span>
Собака Вид:
<span>dog view</span>
@Html.TextBoxFor(m=> m.MyText)
@Html.TextBoxFor(m=> m.MyNumber)
<span>@DateTime.Now.Second</span>
Мой контроллер содержит четыре действия:
[HttpGet]
public ActionResult Index()
{
MyModel model = new MyModel();
return View(model);
}
[HttpPost]
public PartialViewResult Index(MyModel model)
{
if (model.MyNumber == 1)
{
return Cat(model);
}
else
{
return Dog(model);
}
}
[HttpPost]
public PartialViewResult Cat(MyModel model)
{
model.MyText = model.MyText + " K";
return PartialView("Cat", model);
}
[HttpPost]
public PartialViewResult Dog(MyModel model)
{
model.MyText = model.MyText + " P";
return PartialView("Dog", model);
}
Моя проблема заключается в том, что при выполнении действия Cat или Dog MyText в модели изменяется, но когда отображается правильный частичный вид, я вижу старый (не обновленный) MyText. Зачем? Любые другие идеи, как показать конкретное частичное представление в зависимости от данных, размещенных в форме, приветствуются.
Я использую его как jQuery ajax так же, как вы, но проблема существует. Это обновляется о добавленных или удаленных элементах, но не для элементов, которые изменяются только по содержанию. Я не знаю почему. Это меня смутило. :(Вы можете увидеть мой вопрос об этом в http://stackoverflow.com/questions/23033242/send-partial-view-model-and-update-partial-view-with-jquery-has-issues – QMaster