我有一個MVC Ajax窗體模型類的文本框數據綁定。 在這個類我有這些領域:MVC Form DataType電子郵件null值
[Required(ErrorMessage = "First name must be filled")]
public string FirstName { get; set; }
[Required(AllowEmptyStrings = false,ErrorMessage = "Last Name must be filled")]
public string LastName { get; set; }
[DataType(DataType.EmailAddress)]
[Required(AllowEmptyStrings = false, ErrorMessage = "Email must be filled")]
public string Email { get; set; }
所有三個字段綁定@Html.EditorFor(p=>p.FirstName/LastName/Email)
- 所以這應該是相當簡單的。
一切正常,因爲它應該,但當表格發佈時,電子郵件字段始終爲空。 我試圖用<input type="email"
(...)替換它,它也是空的。
因此,結論是,當表單成員有type="email"
時,該值爲空。
有誰知道爲什麼,更重要的是:如何解決它? (順便說一句,這是asp.mvc4)
編輯:這是我的看法:
<div id="result"></div>
@using (Ajax.BeginForm("FormTest", new AjaxOptions() {HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "result"}))
{
{
Html.EnableClientValidation(true);
}
@Html.ValidationSummary(false)
@Html.LabelFor(p => p.EventForm.FirstName)
@Html.EditorFor(p => p.EventForm.FirstName)
@Html.LabelFor(p => p.EventForm.LastName)
@Html.EditorFor(p => p.EventForm.LastName)
@Html.LabelFor(p => p.EventForm.PhoneNumber)
@Html.EditorFor(p => p.EventForm.PhoneNumber)
@Html.LabelFor(p => p.EventForm.Email)
@Html.EditorFor(p => p.EventForm.Email)
@Html.LabelFor(p => p.EventForm.CompanyName)
@Html.EditorFor(p => p.EventForm.CompanyName)
@Html.LabelFor(p => p.EventForm.Adress)
@Html.EditorFor(p => p.EventForm.Adress)
@Html.LabelFor(p => p.EventForm.Zip)
@Html.EditorFor(p => p.EventForm.Zip)
@Html.LabelFor(p => p.EventForm.PostalCity)
@Html.EditorFor(p => p.EventForm.PostalCity)
@Html.LabelFor(p => p.EventForm.Country)
@Html.EditorFor(p => p.EventForm.Country)
@Html.LabelFor(p => p.EventForm.Comment)
@Html.EditorFor(p => p.EventForm.Comment)
}
我的控制器動作:
[HttpPost]
public PartialViewResult Index(EventViewModel form)
{
StoreEventRegistration(form.EventForm);
return PartialView("PagePartial/FormSubmit", form.EventForm);
}
正如你可能知道,我haven't添加了我的整個模型,但其餘的字段的創建方式與所提及的相同。
您使用的是哪種瀏覽器? – haim770
你有沒有嘗試在你的發佈方法採取'FormCollection'並從那裏得到的價值? – Esteban
不,@Esteban,我會試試! – Annish