ASP.NET MVC:Submit呈现相同的页面

时间:2009-07-14 10:25:24

标签: asp.net-mvc

我正在尝试将简单的登录页面添加到ASP.NET MVC应用程序中。我实际上使用Sharp Arch模板项目。所以,我向UsersController添加了3个方法Login(),Logout()和DoLogin(),其中Login()只返回View(“Login”);

现在,当我导航到/ Users / Login时,我的aspx会显示提交按钮:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewPage" Title="Login" %>
<%@ Import Namespace="Orders.Web.Controllers" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<h2>Login</h2>
    <% if (ViewContext.TempData["message"] != null){ %>
        <p><%= ViewContext.TempData["message"]%></p>
    <% } %>
    <% using (Html.BeginForm<UsersController>(u => u.DoLogin()))
       { %>
            <div><% =Html.SubmitButton("submit") %></div>
    <% } %>
</asp:Content>

然而,当我单击Submit时,再次请求Login() - 当我在那里设置断点时我可以看到它,它不会尝试转到UsersController.DoLogin(),即使在生成的HTML页面形式中有动作/用户/ DoLogin。当我在浏览器中手动输入/ Users / DoLogin时,它会被调用并且我的断点被触发。

我已经敲了几个小时......我在这里看不出什么错。

2 个答案:

答案 0 :(得分:0)

必须是路由问题。你可以粘贴你的路线吗,你也可以试试this路线调试器

答案 1 :(得分:0)

好的,感谢jamesshannon,我发现这是因为我的site.master页面突然将所有内容都包装成ASP.NET表单 - 可能是因为我使用VS2008编辑器编辑了它。不确定这种行为是否非常好但是...现在我知道了。