2009-07-14 5 views
1

ASP.NET MVCアプリケーションに単純なログインページを追加しようとしています。私は実際にシャープアーチテンプレートプロジェクトを使用します。そこで、Login()、Logout()、DoLogin()の3つのメソッドをUsersControllerに追加しました。ここでLogin()は単にView( "Login")を返します。私はに移動したときに今ASP.NET MVC:Submitは同じページをレンダリングします

、/ユーザは/ログイン、私の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> 

しかし、要求は()ログインしてもう一度行われる - 私が見ることができますブレークポイントを設定すると、結果のHTMLページ・フォームにアクション/ Users/DoLoginがあっても、UsersController.DoLogin()に移動しようとしません。手動で/ Users/DoLoginをブラウザに入力すると、呼び出され、ブレークポイントが起動します。

私は数時間前から私の頭を叩いています...私はここで何が間違っているか分かりません。

+1

生成されたHTMLを投稿できますか?つまり、ページをレンダリングし、 "ソースを表示" –

+0

非常にありがとうございます;-)私はソースを検査しましたが、投稿するためにprettifyingしたとき、私はこれを発見しました:

そして、 site.master: VS2008エディタで.masterを開いてメニューを追加しようとしたときに、ASP.NETフォームが追加されました... MVCフォームをラップしました途中に入った。 この特別なフォームを削除すると、問題が解決しました。 – queen3

答えて

0

jamesshannonのおかげで、私のsite.masterページが突然すべてのものをASP.NETフォームにラップしたことがわかりました。これはおそらく、私が編集したためですVS2008エディタ。そのような行動がとても良いのかどうかはわかりませんが、今私は認識しています。

0

ルーティングの問題である必要があります。 thisルートデバッガ

+0

OKデバッガの/ Users/Loginと/ Users/DoLoginの両方を適切なコントローラ/アクションにルーティングしようとしました...実際には/ Users/Loginと/ Users/DoLoginの両方がブラウザでURLに入力されたときに期待通りに機能します。それは動作しないように思われる送信ボタンです... – queen3

関連する問題