2011-09-19 62 views
1

我使用HtmlHelper在index.cshtml中創建了MVC3 Razor表單。它的工作原理,但我想使用AjaxHelper(注意:我仍然不熟悉Ajax/jQuery)用Ajax表單替換它。它失敗。我的問題:將MVC3(Razor)表單轉換爲Ajax表單

  1. 我的代碼有什麼問題?
  2. 有沒有什麼好的網站可以解釋這種轉型?
  3. 如果將視圖轉換爲Ajax處理,是否有必要更改控制器?

這是我的index.cshtml文件。我的Ajax試用版在MVC3表單下面註釋。

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script> 

@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new 
{ 
    enctype = "multipart/form-data" 
})) 
{ 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>Select a file</legend> 
     <input type="file" id="fileupload" name="fileuploadname" /> 
     <p> 
      <input type="submit" value="Upload" id="upload" onclick="javascript:document.getElementById('upload').disabled=true; document.getElementById('upload').value='Uploading...'" /> 
     </p> 
    </fieldset> 
} 

@* @using (Ajax.BeginForm("UploadFile", "Home", 
       new AjaxOptions 
       { 
        InsertionMode = InsertionMode.Replace, 
        HttpMethod = "POST" 
       })) 
{ 
    <input type="file" id="fileupload" name="fileuploadname" /> 
    <p> 
     <input type="submit" value="Upload" id="upload" onclick="javascript:document.getElementById('upload').disabled=true; document.getElementById('upload').value='Uploading...'" /> 
    </p> 
} 
*@ 

Thx提前。

回答

1

您無法使用Ajax上傳文件。至少不是直接的。

當然有few plugins這個幫助你,但他們在AjaxHelper範圍外qork。這只是意味着你將不得不與jQuery弄髒你的手,這也是一件好事。這是一個簡單而小型的圖書館,在熟悉它的同時,您很可能會偏離AjaxHelper,而只是使用jQuery(與HtmlHelper)。

+0

Thx for answer and link。 – MagB