2016-07-07 6 views
0

Я пытаюсь обновить частичный вид в ASP.NET MVC с формой ajax, содержащейся в частичном представлении. Однако всякий раз, когда форма отправляется, вся страница изменяется на частичное представление, а не только на части страницы, где содержится частичный вид.Обновление ASP.NET Partial View с Ajax.BeginForm

Мой частичный Просмотр Форма:

@using (Ajax.BeginForm("Archive", "Products", new { id = note.ID }, 
    new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.ReplaceWith,UpdateTargetId = @*Unique ID*@ })) 
{ 
    @Html.AntiForgeryToken() 
    <input type="submit" value="Archive" class="btn btn-default"/> 
} 

Функция Он призывает:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Archive(int ID) 
{ 

    ProductNote model = db.ProductNotes.FirstOrDefault(x => x.ID == ID); 

    model.Archived = true; 
    db.SaveChanges(); 
    Product modelP = db.Products.FirstOrDefault(z => (z.ProductNotes.FirstOrDefault(y => y.ID == model.ID).NoteText != null)); 
    System.Diagnostics.Debug.WriteLine(modelP.ID.ToString() + "Test Test 123"); 
    System.Diagnostics.Debug.WriteLine("Test\n\n\n"); 
    return PartialView("_ProductNotes", modelP); 

} 
+1

Вы реализовали все jquery-рефренсы, необходимые для того, чтобы превзойти это? Я имею в виду файл jquery.ajax.unobtrusive в главном представлении. – MRebati

ответ

0

Я думаю, вы должны попытаться поставить Patialview внутри сНу тег с идентификатором

<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> 
<div id="replace-this"> 
     @using (Ajax.BeginForm("Archive", "Products", new { id = note.ID }, 
    new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.ReplaceWith,UpdateTargetId = "replace-this" })) 
{ 
    @Html.AntiForgeryToken() 
    <input type="submit" value="Archive" class="btn btn-default"/> 
} 
</div> 
+0

Я на самом деле пробовал это при отладке, не влияет на результат – Ellis

+0

У вас есть сценарий «jquery.unobtrusive-ajax.js» на ваш взгляд. Кроме того, есть ли какой-нибудь элемент, который имеет тот же идентификатор, что и ваша цель? – TranQ

+0

Да и нет, все идентификаторы одинаковы, и скрипт включен в представление – Ellis

0

Добавьте ссылку на следующие библиотеки jQuery в нижней части частичного представления:

<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>