我是asp.net mvc的新手,我試圖爲asp.net mvc開發可重用的聯繫人表單組件。在asp.net中創建可重複使用的表單聯繫人組件mvc
我已經tryed做創建與形式的PartialView,我不知道這是更好的方法,用於創建一個可重用的組件
我PartialView是
@model MyModel.ContactData
@using (Html.BeginForm("ContactForm", "ContactForm", FormMethod.Post)) {
<fieldset>
<p>
@Html.LabelFor(model => model.MailAddress)
@Html.EditorFor(model => model.MailAddress)
</p>
<p>
@Html.LabelFor(model => model.Message)
@Html.TextAreaFor(model => model.Message)
</p>
<input type="submit" value="Save" />
</fieldset>
}
問題從控制器開始,控制器是僅用於該部分視圖的特定控制器。
public class ContactFormController : Controller
{
[HttpPost]
public ActionResult ContactForm(ContactData contactData)
{
if (ModelState.IsValid)
{
return PartialView("MessageSend");
}
return PartialView();
}
}
我的問題是在某些必需的字段的情況下是空的,在這種情況下,控制器僅返回局部視圖,而不會返回它的父上下文內的partival視圖。我已經嘗試從父視圖調用PartialView作爲@ Html.Partial,@ Html.RenderAction,@ Html.RenderPartial,併發生同樣的情況。
如何返回部分視圖在其父上下文中?我已經嘗試 返回查看(ParentViewsName,contactData),但我不喜歡它,因爲在表單提交它更改/聯繫人/ ContactForm/ContactForm地址欄上的網址。
Perphaps我試圖用錯誤的方法創建一個可重用的組件?用ajax只更新PartialView更好?備擇方案?
感謝
對不起,我沒有解釋清楚,問題是如果填寫表格時沒有提交所有必填字段。使用當前代碼提交填充爲空的表單時,只返回不帶父級視圖上下文的部分視圖。 –
你試過我的代碼嗎?如果模型無效,它將返回到頁面。如果它有效,它設置tempdata變量。 – Sunny
是的,我已經嘗試過,並與返回查看(contactData)它只返回部分視圖,失去父視圖。 –