這是我的形式發送形式控制器阿賈克斯
<form id="postProblemForm" action="/Problems/Post" method="post" enctype="multipart/form-data">
<input type="text" id="problemSubject" name="problemSubject" class="inp-form"/>
<input type="file" id="uploadFile" name="uploadFile"/>
<textarea rows="" cols="" class="form-textarea" id="problemDescription" name="problemDescription"></textarea>
<input type="submit" value="Post" id="btnPostProblem" style="width:70px;"/>
</form>
以下是JS
$("#postProblemForm").submit(function (event) {
event.preventDefault();
var $this = $(this);
var url = $this.attr('action');
var dataToSend = $this.serialize();
var callBack = function (isPosted) {
if (isPosted) { alert("posted successfully"); } }
$.get(url,dataToSend,callBack);
});
以下是控制器代碼
[HttpPost]
public bool Post(FormCollection form)
{
string subject = form["problemSubject"];
string description = form["problemDescription"];
var image = WebImage.GetImageFromRequest();
return true;
}
但是控制器方法不會被調用。請幫忙。
確定其罰款。但我想要客戶端驗證,然後必須發送表單到控制器。應該做什麼? – 2013-04-23 06:25:40
客戶端驗證與AJAX完全無關。這是兩種不同的概念。您可以完全正確地啓用客戶端驗證,並仍然將表單提交爲常規表單。例如,讓我們假設你想要'problemSubject'字段。只需用'[Required]'屬性來修飾視圖模型的屬性,然後使用助手來生成該字段,而不是像以前那樣對其進行硬編碼:'@ Html.EditorFor(x => x.ProblemSubject)''。然後包含一個相應的驗證佔位符:'@ Html.ValidationMessageFor(x => x.ProblemSubject)'。 – 2013-04-23 06:27:01
......並最終包含'jquery.validate.js'和'jquery.validate.unobtrusive.js'腳本。 – 2013-04-23 06:29:12