0

我遇到了这个问题,我在不同的 cshtml 文件中有一个登录屏幕和一个注册屏幕,但注册视图被称为 @Html.Partial。登录屏幕中的代码如下:

        <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>
}

基本上,问题是当我尝试注册新用户时,它会将我重定向到 localhost/Account/Register,当我返回登录屏幕(在同一视图中)时,我无法调用任何其他操作从寄存器一。

对此的任何帮助将不胜感激。

4

2 回答 2

1

尝试完全指定您的第一个 Html 表单的操作,就像您在部分中所做的那样:

@using (Html.BeginForm("Index", "Account")) {
    //
}
于 2012-07-31T20:23:46.443 回答
0

您可能应该对重新注册有不同的看法。看起来您有一个包含登录框(用户名/密码字段)和新用户注册字段的视图。

但是注册视图被称为@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>

您可以有一个单独的注册视图,您可以在其中包含您的部分注册。

希望这可以帮助。

于 2012-07-31T20:23:02.400 回答