2012-07-31 15 views
0

我遇到了此問題,其中有不同的cshtml文件中的登錄屏幕和註冊屏幕,但註冊視圖被稱爲@ Html.Partial。登錄屏幕中的代碼如下:當從部分視圖重定向時調用MVC中的操作

 <div class="panelLogIn left @if (ViewBag.register) { Write("hidden"); }"> 
     @using (Html.BeginForm()) { 
      <div> 
       <div class="validationMessage" style="padding-bottom:10px;">@Html.ValidationMessage("loginFailed")</div> 
       <div class="field"> 
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">User</span> 
        @Html.TextBoxFor(a => a.UserName, new { @class = "textField" }) <div class="absolute validationMessage">@Html.ValidationMessageFor(u => u.UserName)</div> 
       </div> 
       <div class="field relative"> 
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">Password</span> 
        @Html.PasswordFor(a => a.Password, new { @class = "textField" }) <div class="absolute validationMessage">@Html.ValidationMessageFor(u => u.Password)</div> 
       </div> 
       <div class="em0-9" style="margin-bottom: 20px;"> 
        <input class="submitButton cursorHand" style="margin-top: 10px;" type="submit" value="Enter" /> 
       </div> 
       <div class="em0-9"> 
        <span class="guestLink bold linkBlue underline cursorHand">Register Free</span> 
       </div> 
      </div> 
     } 
     </div> 
     <div class="panelGuest left @if (!ViewBag.register) { Write("hidden"); }"> 
      @Html.Partial("RegisterUser", Model.NewUser) 
     </div> 

和寄存器觀點如下:

@using (Html.BeginForm("Register", "Account")) 
{ 
     /* The text boxes and form elements */ 


    <div class="em0-9" style="margin-bottom:20px;"> 
     <input class="submitButton cursorHand" style="margin-top:10px;" type="submit" value="Register" /> 
    </div> 
} 

基本上,問題是,當我嘗試註冊一個新用戶,它重定向我到本地主機/帳戶/註冊,當我回到LogIn屏幕(在同一視圖中)時,除了註冊之外,我無法調用任何其他操作。

任何幫助,這將不勝感激。

+0

我不明白你的問題。你想在登錄後將用戶重定向到特定頁面嗎? – 2012-07-31 20:20:35

+0

不,只是在窗體上調用的動作,有人已經回答,謝謝。 – triangulito 2012-07-31 22:33:57

回答

1

儘量充分說明您的第一個HTML表單的作用,因爲你在局部做了:

@using (Html.BeginForm("Index", "Account")) { 
    // 
} 
+0

非常感謝你,那太容易了。我需要多學習一點MVC。 – triangulito 2012-07-31 22:19:10

0

你應該有一個不同的視圖resgister。它看起來像你有一個視圖,其中包含登錄框(用戶名/密碼字段)&也是新的用戶註冊字段。

,但寄存器的觀點被稱爲爲@ Html.Partial

如果您熟悉的Web用戶控件形成的編程模型,HTML諧音會有點類似於用戶控件。

所以在登錄屏幕代碼將只是

<div class="panelLogIn left @if (ViewBag.register) { Write("hidden"); }"> 
     @using (Html.BeginForm()) { 
      <div> 
       <div class="validationMessage" style="padding-bottom:10px;">@Html.ValidationMessage("loginFailed")</div> 
       <div class="field"> 
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">User</span> 
        @Html.TextBoxFor(a => a.UserName, new { @class = "textField" }) <div class="absolute validationMessage">@Html.ValidationMessageFor(u => u.UserName)</div> 
       </div> 
       <div class="field relative"> 
        <span class="textOverField absolute em1-2" style="top:6px;left:4px;">Password</span> 
        @Html.PasswordFor(a => a.Password, new { @class = "textField" }) <div class="absolute validationMessage">@Html.ValidationMessageFor(u => u.Password)</div> 
       </div> 
       <div class="em0-9" style="margin-bottom: 20px;"> 
        <input class="submitButton cursorHand" style="margin-top: 10px;" type="submit" value="Enter" /> 
       </div> 
       <div class="em0-9"> 
        <span class="guestLink bold linkBlue underline cursorHand">Register Free</span> 
       </div> 
      </div> 
     } 
     </div> 

你可以有一個單獨的寄存器視圖中,你可以包括你的寄存器部分。

希望這會有所幫助。

相關問題