[英]Multiple actions on the same controller and view in asp.net MVC
如何在同一控制器上使用多個動作?
我正在使用在asp.net mvc中打開新項目時出現的默認項目。
我在homecontroller上又添加了一個Index操作,以接受來自文本框的值...就像這樣
string strTest;
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection frm)
{
strTest = frm["testbox"];
return RedirectToAction("Index");
}
現在,我需要將輸入的值顯示給用戶。 我該怎么做呢?
我嘗試過這個
public ActionResult Index()
{
this.ViewData.Add("ReturnMessage", strValue);
return View();
}
這就是我的看法。
<% using (Html.BeginForm())
{ %>
<p>
<%=Html.TextBox("testbox")%>
</p>
<p>
<input type="submit" value="Index" /></p>
<p>
<%= Html.ViewData["ReturnMessage"] %>
</p>
<% } %>
編譯器通常不允許我使用相同的構造函數添加另一個索引,以將輸入的消息顯示回用戶,這在我知道的C#中是顯而易見的。 但是,然后我如何將消息返回給用戶。 謝謝
好了,控制器根據發送的參數匹配一條路線。 您可以按從最具體到最不具體的順序對路由進行分層,並按順序進行檢查。 第一個成功的人。
另一個答案是要么強烈鍵入發送到視圖的模型,要么將其存儲在ViewData中:
ViewData["Message"] = "Welcome to ASP.NET MVC!";
然后在您的視圖中訪問它:
<%= Html.Encode(ViewData["Message"]) %>
喬希,請參閱您之前提出的問題。
在這里,我有<%= Html.textbox("myInput", Model.myInput....
是Model.myInput,它將模型中的值放入yoru文本框的文本中。
編輯
或者,如果您不想在文本框中輸入內容,則只需執行;
編輯2
您可以在新的表單視圖模型中添加盡可能多的項目,在這種情況下,它與數據庫無關。 請參閱您先前在我在哪里宣布課程的問題。
該類可以具有任意數量的屬性。 因此,您可以添加string myResponse {get;set;}
以將響應返回到視圖,因此可以使用<%=Model.myResponse%>
希望這可以幫助。
簡單的方法
在您看來
<% using (Html.BeginForm()) {%>
<%= Html.TextBox("myInput") %>
<%= ViewData["response"] %>
<%}%>
在您的控制器中;
public ActionResult Index()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(FormCollection collection)
{
ViewDate.Add("response", collection["myInput"]);
return View();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.