[英]Mvc View rendering
我正在嘗試創建與我們聯系的頁面,用戶在其中填寫詳細信息並提交,並在底部顯示來自服務器的消息。
我實現的方式是這樣的。
[HttpGet]
public ActionResult ContactUs()
{
//Process the stuff
return View("~Views/Contact/Contact.cshtml", model)
}
現在,當頁面加載時,它會擊中上述方法並顯示包含頁眉和頁腳的布局表格。
用戶提交表單后,將點擊以下方法
[HttpPost]
public ActionResult ContactUs(ContactUs form)
{
//Process the stuff
View.Message="Thank you for your enquiry."
return View("~Views/Contact/Contact.cshtml", model)
}
它返回到同一頁面,但它不呈現正文布局,即使頁眉或頁腳也不僅僅顯示輸出表單。
不知道我在哪里做錯了,有沒有更好的方法?
謝謝
根據上面的代碼,我相信您正在嘗試類似的事情:
public class UxController : Controller
{
public ActionResult WithResponse(ActionResult result, string message)
{
PageResponse(message);
return result;
}
protected void PageResponse(string message)
{
TempData["Ux_Response"] = message;
}
}
那將是您的Controller,然后是該特定頁面的Controller,它看起來像:
public class HomeController : UxController
{
public ActionResult Index()
{
return View();
}
public ActionResult SubmitForm(string message)
{
return WithResponse(RedirectToAction("Index"), "Thank you for feedback.");
}
}
然后,在您的前端代碼中,您將執行以下操作:
@if(TempData["Ux_Response"] != null)
{
<div>@TempData["Ux_Response"]</div>
}
<form action="/Home/SubmitForm" method="post">
<input type="text" name="message" />
<input type="submit" value="Submit" />
</form>
顯然,您可以通過更多功能來增強此功能。 但是,您依賴於Post,這將導致屏幕閃爍。 因此,更好的方法可能是先執行Ajax,然后返回JsonResult
。 希望這可以幫助您。
如果這樣更改控制器/視圖,它應該可以工作。
控制器;
public ActionResult Contact(ContactModel model)
{
ViewBag.Message = "Your contact page.";
return View(model);
}
public ActionResult SaveContact(ContactModel model)
{
//process values in your model and then rest model
ContactModel.Message = "Thank you for contacting us"; //show thank you message
return RedirectToAction("Contact",model);
}
視圖;
@model MvcApplication1.Models.ContactModel
@{
ViewBag.Title = "Contact";
}
@using (Html.BeginForm("SaveContact", "Home", Model, FormMethod.Post))
{
@Html.DisplayFor(m => m.Message);
<button type="submit">Submit</button>
}
我努力解決這個問題。 問題是因為我正在使用sitecore cms,因此表單操作沒有處理它的全部工作流程,所以在刪除操作后,它默認為在cms中定義並觸發cms工作流程的action方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.