2015-07-16 5 views
0

Он перенаправляет на всю новую страницу вместо того, чтобы просто обновлять текущий, у меня есть ненавязчивые скрипты и материал web.config. Почему это не работает?Ajax.Beginform освежает всю страницу

<div id="preview-image-placeholder"></div> 

@foreach (var item in Model) 
{ 
    using (Ajax.BeginForm("PreviewImage/" + @item.Id.ToString(), "Music", null, new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "preview-image-placeholder" }, 
                 new { @enctype = "multipart/form-data", @item.Id })) 
    { 
     @Html.AntiForgeryToken() 

     <input type="file" class="upload-image" id="[email protected]" name="file" accept="image/*"> 
     <button class="btn btn-default" id="[email protected]" style="display: none" type="submit"></button> 
    } 
} 
<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 

Контроллер:

 [ValidateAntiForgeryToken] 
    [HttpPost] 
     public PartialViewResult PreviewImage(HttpPostedFileBase file, int id) 
     { 
      //Do other code stuff 
       return PartialView("_DisplayImage", song); 
     } 

_DisplayImage частичный вид:

@model IEnumerable<MusicSite.Models.UploadedSong> 
@using MusicSite.CustomHtmlHelpers; 

@foreach(var item in Model) 
{ 
    if (@item.CoverImageBytes != null) 
    { 
     @Html.ImageFor(x => item.CoverImageBytes, @item.SongName + " Image", new { @id = "preview-image" }) 
    } 
} 

ответ

0

Кроме ненавязчивых сценариев вы должны добавить библиотеки Microsoft Ajax тоже (MicrosoftAjax.js и MicrosoftMvcAjax.js), так что Ajax. BeginForm работает правильно.

С уважением,

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