Asp.net-Mvc

ASP.NET MVC 中的多個表單

  • February 15, 2015

上下文

假設我有:

在佈局 Site.Master 中:

<div class="leftColumn">
   <asp:ContentPlaceHolder ID="MainContent" runat="server" />
</div>
<div class="rightColumn">
   <% Html.RenderPartial("_Login"); %>
   <asp:ContentPlaceHolder ID="SideContent" runat="server" />
</div>

登錄部分視圖如下所示:

<form action="/myApp/Account/Login" method="post">
   <input name="name" />Name<br />
   <input name="password" type="password" />Password<br />
   <button>Login</button>
</form>

是否可以只更新登錄小元件表單,而不是整個內容頁面?

如果您指的是 http 文章,則只有通過表單內的送出按鈕啟動的文章(也可以由 javascript 啟動)才會發佈到伺服器。

如果您的表單是嵌套的,那麼這將不起作用。外部表單將始終發佈到伺服器。

在下面的範例 HTML 中,點擊第一個表單上的送出按鈕不會將值從第二個表單發送到伺服器。同樣,點擊第二個送出按鈕不會發布第一個表單中的值。

<html>
...
 <body> 
   <div>

     <form action="/Login/Login" method="post">
       <input type="text" name="username" value="" />
       <input type="text" name="passowrd" value="" />
       <input type="submit" name="login" value="Login" />
     </form>


     <form action="/Login/AdminLogin" method="post">
       <input type="text" name="username" value="" />
       <input type="text" name="passowrd" value="" />
       <input type="submit" name="login" value="Login Admin" />
     </form>
   </div>
</body>
</html>

如果您只想更新/更改表單部分之一,那麼不使用 javascript 並執行 javascript 發布(又名Ajax )就無法做到這一點。

引用自:https://stackoverflow.com/questions/822751