繁体   English   中英

MVC3剃刀ViewData

[英]MVC3 Razor ViewData

我有一个在线表格。 例如,它要求输入名字和姓氏。 当他们提交时,我将其发送到另一个视图。 第二个视图还有更多的文本框(密码,电子邮件地址,用户名),但是也有名字和姓氏。 如果他们填写第一个表格并填写名字/姓氏,我希望第二个表格显示这些值,因为它们已经填写完毕。

在第一种形式中,我将所有填写的信息放入TempData [“ entry”]

在第二种形式中,我正在执行此检查。

        if (TempData["entry"] != null)
        {
            var _model = (AccountInformationModel)TempData["entry"];

            ViewData["_firstName"] = _model.NameFirst;
            ViewData["_lastName"] = _model.NameLast;
        }

        return View("Register");

我想我认为我对如何在文本框中显示此数据有些困惑。 我认为,这似乎没有用。

       <div class="editor-label">
            @Html.LabelFor(m => m.FirstName)
        </div>
        <div class="editor-field">
            @Html.TextBox("FirstName", ViewData["FirstName"])
            @Html.ValidationMessageFor(m => m.FirstName)
        </div>

显然这句话说...

   @Html.TextBox("FirstName", ViewData["FirstName"])

不起作用..

您正在将值分配给“ _firstName”

ViewData["_firstName"] = _model.NameFirst;

然后尝试显示“名字”

@Html.TextBox("FirstName", ViewData["FirstName"])

尝试将其更改为:

@Html.TextBox("FirstName", ViewData["_firstName"])

避免此类错误的另一种方法是定义一个包含所有视图数据键的新类。 这样,您的琴弦就可以存放在一个位置,从而使维护和更改变得更加容易。

public static class ViewDataKeys
{
    public const string FirstName = "_firstName";
}

然后,当您要访问它时,可以使用

ViewData[ViewDataKeys.FirstName] = _model.NameFirst;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM