ASP.NET MVC: Submit отображает ту же страницу - PullRequest
1 голос
/ 14 июля 2009

Я пытаюсь добавить простую страницу входа в приложение ASP.NET MVC. Я на самом деле использую шаблонный проект Sharp Arch. Итак, я добавил 3 метода Login (), Logout () и DoLogin () в UsersController, где Login () просто возвращает View («Логин»);

Теперь, когда я перехожу к / 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 голосов
/ 14 июля 2009

ОК, так что благодаря jamesshannon я обнаружил, что это произошло потому, что моя страница site.master внезапно обернула все в форму ASP.NET - возможно, потому что я редактировал ее с помощью редактора VS2008. Не уверен, что такое поведение очень хорошо, но ... теперь я в курсе.

0 голосов
/ 14 июля 2009

Должна быть проблема маршрутизации. Вы можете вставить свои маршруты, вы также можете попробовать этот отладчик маршрута

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...