簡體   English   中英

在同一個控制器上的多個操作並在asp.net MVC中進行查看

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM