2011-12-22 10 views
1

どうすれば私のasp.net mvc 2.0プロジェクトのすべてのページにログインビューを挿入できますか? 私はこのコントローラを "盗んだ"ので、MS Visual Studio 2010の空でないプロジェクトからのビューを表示します。どのようにしてすべてのビューにログインフォームを挿入できますか? 私はphp:includeのようなものを使う必要があります。 asp.net mvcには何がありますか?アスコックス?ここ はmain.masterです:ascx、または同等の方法を使用するには?

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
    <title> 
     <asp:ContentPlaceHolder ID="TitleContent" runat="server" /> 
    </title> 
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" /> 
    <link href="/Content/Site.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
    <div class="header"> 
     <img src="/Content/image/img_06.jpg" width="320" height="192" /></div> 
    <div class="naviheader"> 
     <div class="navl"> 
     </div> 
     <a href="/Home" class="navitext">На главную</a> <a href="/Shedule" class="navitext"> 
      Расписание</a> <a href="/Home/About" class="navitext">О нас</a> <a href="/Admin" 
       class="navitext">АдминПанель</a> 
    </div> 
    <div id="middle"> 
     <div id="container"> 
      <div id="content"> 
       <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
       </asp:ContentPlaceHolder> 
      </div> 
      <!-- #content--> 
     </div> 
     <!-- #container--> 
     <div class="sidebar" id="sideLeft"> 
      <asp:ContentPlaceHolder ID="Login" runat="server"> 
       <% Html.RenderPartial("Login"); %> 
      </asp:ContentPlaceHolder> 
     </div> 
</body> 
</html> 

と私は挿入する必要がありますでしょうか?ここ は、ログインビュー(ASPX)です:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Main.Master" Inherits="System.Web.Mvc.ViewPage<TrainShedule.Models.LogOnModel>" %> 

<asp:Content ID="loginTitle" ContentPlaceHolderID="TitleContent" runat="server"> 
    Log On 
</asp:Content> 

<asp:Content ID="loginContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2>Log On</h2> 
    <p> 
     Введите свой логин и пароль: 
    </p> 

    <% using (Html.BeginForm()) { %> 
     <%= Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") %> 
     <div> 
      <fieldset> 
       <legend>Ввод данных:</legend> 

       <div class="editor-label"> 
        <%= Html.LabelFor(m => m.UserName) %> 
       </div> 
       <div class="editor-field"> 
        <%= Html.TextBoxFor(m => m.UserName) %> 
        <%= Html.ValidationMessageFor(m => m.UserName) %> 
       </div> 

       <div class="editor-label"> 
        <%= Html.LabelFor(m => m.Password) %> 
       </div> 
       <div class="editor-field"> 
        <%= Html.PasswordFor(m => m.Password) %> 
        <%= Html.ValidationMessageFor(m => m.Password) %> 
       </div> 

       <div class="editor-label"> 
        <%= Html.CheckBoxFor(m => m.RememberMe) %> 
        <%= Html.LabelFor(m => m.RememberMe) %> 
       </div> 

       <p> 
        <input type="submit" value="Log On" /> 
       </p> 
      </fieldset> 
     </div> 
    <% } %> 
</asp:Content> 

答えて

2

まず、ユーザーcontorl(ASCX)にログインビューページ(ASPX)を変更する必要があります。これはあまりにも困難ではありません。いくつかの調整を加えてコピーして貼り付けてください。

コントロールを取得したら、それをマスターページに追加すると、マスターページを使用するすべてのページに表示されます。ページにコントロールを追加する2つの方法があります。

  1. デザイナーの表面にドラッグし、ユーザーコントロール enter image description here

  2. Html.RenderUserControl enter image description here

次のリンクはたくさんのに役立ちます。 asp.net mvc usercontrols start to finish

0

パーシャルビュー(.ascxなど)を使用し、レイアウト(マスターページなど)を使用します。

関連する問題