ASP.NET MVC中的多个表单

Arn*_*psa 8 forms asp.net-mvc post

上下文
让我说我有:
在布局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>
Run Code Online (Sandbox Code Playgroud)

登录partialView看起来像:

<form action="/myApp/Account/Login" method="post">
    <input name="name" />Name<br />
    <input name="password" type="password" />Password<br />
    <button>Login</button>
</form>
Run Code Online (Sandbox Code Playgroud)

是否可以仅更新登录窗体小部件表单,而不是整个内容页面?

Chu*_*way 15

如果您指的是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>
Run Code Online (Sandbox Code Playgroud)

如果您只想更新/更改其中一个表单部分,那么如果不使用javascript并执行javascript帖子(也称为Ajax),则无法执行此操作.