2012-02-19 3 views
3

У меня есть частичный вид, что при добавлении элемента в базу данных необходимо обновить.mvc частичный просмотр ajax-обновление, возвращающее частичный вид в виде страницы

Index.cshtml:

@using (Ajax.BeginForm("Index", "WinEntry", new AjaxOptions { HttpMethod = "POST",  UpdateTargetId = "wingrid", InsertionMode = InsertionMode.Replace})) 
{ 
    @Html.Partial("_winVenue") 
    @Html.Partial("_singleWin") 
} 
<div id="wingrid"> 
    @Html.Partial("_wingrid") 
</div> 

_singleWin имеет кнопку отправить

Контроллер:

[HttpPost] 
     public ActionResult Index(Win win) 
    { 
     win.dealerId = "1234567890"; 
     win.posterid = "chris"; 
     win.posttime = DateTime.Now; 
     wem.addWin(win); 
     IEnumerable<Win> w = wem.getVenueWins(win.venue,win.windate); 
     return PartialView("_wingrid",w); 
    } 

Когда контроллер возвращает частичный вид _wingrid возвращается это как новая страница, и поведение, которое я ищу, похоже на обновление e панель внутри крылатого div.

Любая помощь будет оценена по достоинству.

+0

Включили ли вы MicrosoftAjax. js и MicrosoftMvcAjax.js на странице, которую вы хотите обновить? – cpoDesign

ответ

5

Вы уже, кажется, делаете это благодаря опции UpdateTargetId = "wingrid" в своей форме AJAX. Просто убедитесь, что вы очищаете значения, которые вы изменяете в своем действии контроллера POST, из состояния модели. В противном случае HTML-хелпер могли использовать старые значения:

[HttpPost] 
public ActionResult Index(Win win) 
{ 
    ModelState.Remove("dealerId"); 
    win.dealerId = "1234567890"; 
    ModelState.Remove("posterid"); 
    win.posterid = "chris"; 
    ModelState.Remove("posttime"); 
    win.posttime = DateTime.Now; 
    wem.addWin(win); 
    IEnumerable<Win> w = wem.getVenueWins(win.venue,win.windate); 
    return PartialView("_wingrid",w); 
} 

Также не забудьте включить jquery.unobtrusive-ajax.js скрипт на вашу страницу, если вы хотите, чтобы ваши Ajax.* помощников для работы:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 
+0

Спасибо Дарин, у меня было это в моем макете с некоторыми другими скриптами, которые я консолидировал/удалил. При удалении я удалил ненавязчивый. – Chris

 Смежные вопросы

  • Нет связанных вопросов^_^