我有以下選項。
1.使用Ajax開始形成AjaxOptions像下面
@using (Ajax.BeginForm("ActionName", "ControllerName", new { area = "AreaName" }, new
AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "alert('Success');" //This will execute once the Ajax call is finished.
}, null))
{
<input type="submit" name="nameSubmit" value="Submit" />
}
2.使用jQuery手動設置的XHR請求
$.ajax({
url: "@Url.Action("ActionName", "ControllerName", new { area = "AreaName" });",
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({param : Value})
})
.done(function() { alert('Success');}) //This will execute when you request is completed.
.fail(function() { })
我建議
有以下不足之處ES同時使用的FormCollection
點 - 1
如果FormCollection
正在使用......這將是強制性的Type Cast
的Primitive Type
值未必然,因爲在獲取System.Collections.Specialized.NameValueCollection
的特定指數的進入,返回的值是String
。在強類型View-Models
的情況下不會出現這種情況。
問題 - 2
當您提交表單,並進入Post
操作方法,並作爲View-Model
參數在操作方法存在,你必須提供給發佈值發送給您View
。否則,再編寫代碼通過TempData/ViewData/ViewBag
點送回去 - 3
我們有數據註釋,可以在View Model
或Custom Validations
實現。
ASP.Net MVC簡化了使用數據註釋模型validatons。數據註釋是屬性thyat應用於屬性的屬性。我們可以通過繼承內置的驗證屬性類來創建自定義驗證屬性。
點 - 4
例如,你有以下HTML
<input type="text" name="textBox1" value="harsha" customAttr1 = "MyValue" />
問題:我們怎樣才能從訪問customAttr1的價值以上,例如來回m內部控制器
答案:當表單發佈時,只有元素的名稱和值被髮回服務器。 您還可以使用隱藏字段將屬性發布到發佈操作方法。
替代:使用位的jQuery到與表單值的操作方法相處的自定義屬性值,和後
另一種選擇是,而把你所得到的在自定義的隱藏屬性控件
這就是原因,我總是喜歡使用View-Models
來源
2013-07-11 10:50:29
SCV
請注意,確保您返回正確的視圖。注意到這個控制器動作並沒有以[HttpPost]開始[我猜這不是視圖最初被調用的方法 –