Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 MVC3 Razor视图数据_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc 3 MVC3 Razor视图数据

Asp.net mvc 3 MVC3 Razor视图数据,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我有一张在线表格。例如,它要求输入名字和姓氏。当他们提交时,我将他们发送到另一个视图。第二个视图还有几个文本框(密码、电子邮件地址、用户名),但也有名字和姓氏。如果他们填写第一个表单并填写firstname/lastname,我希望第二个表单显示这些值,因为它们已经被填写 在第一个表单中,我将所有填写的信息放入TempData[“entry”] 在第二种形式中,我正在做这项检查 if (TempData["entry"] != null) {

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

在第一个表单中,我将所有填写的信息放入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>

不起作用。

您正在将值赋给“\u firstName”

然后尝试显示“FirstName”

尝试将其更改为:

@Html.TextBox("FirstName", ViewData["_firstName"])
另一种避免此类错误的方法是定义一个包含所有视图数据键的新类。通过这种方式,字符串被包含在一个位置,使得维护和更改更容易

public static class ViewDataKeys
{
    public const string FirstName = "_firstName";
}
然后,当您想要访问它时,您可以使用

ViewData[ViewDataKeys.FirstName] = _model.NameFirst;

您正在将值赋给“\u firstName”

然后尝试显示“FirstName”

尝试将其更改为:

@Html.TextBox("FirstName", ViewData["_firstName"])
另一种避免此类错误的方法是定义一个包含所有视图数据键的新类。通过这种方式,字符串被包含在一个位置,使得维护和更改更容易

public static class ViewDataKeys
{
    public const string FirstName = "_firstName";
}
然后,当您想要访问它时,您可以使用

ViewData[ViewDataKeys.FirstName] = _model.NameFirst;

布兰登…谢谢..愚蠢的错误..有另一双眼睛总是好的,我想,我走的是对的。@gevjen,没问题。作为一个旁注,你可能想考虑使用常量而不是字符串来避免这样的错误。“布兰登……以前从来没有这样做过,我以前也没听过。我会查一下,但是如果你有任何链接的话,请把它传下去…谢谢!”gevjen,看看备选方案的答案。啊..跟你来..更好的方法..我会做出改变..谢谢你教我更好的方法。。!布兰登…谢谢..愚蠢的错误..有另一双眼睛总是好的,我想,我走的是对的。@gevjen,没问题。作为一个旁注,你可能想考虑使用常量而不是字符串来避免这样的错误。“布兰登……以前从来没有这样做过,我以前也没听过。我会查一下,但是如果你有任何链接的话,请把它传下去…谢谢!”gevjen,看看备选方案的答案。啊..跟你来..更好的方法..我会做出改变..谢谢你教我更好的方法。。!奇怪的是,为什么不将包含名字和姓氏的模型实例传递给第二个视图,然后使用
@Html.TextBoxFor(m=>m.FirstName)
?@adrift…刚刚尝试了你的建议,效果非常好。我喜欢这里的两个想法…但是你的想法似乎很好地利用了mvc的思想…谢谢你的建议!奇怪的是,为什么不将包含名字和姓氏的模型实例传递给第二个视图,然后使用
@Html.TextBoxFor(m=>m.FirstName)
?@adrift…刚刚尝试了你的建议,效果非常好。我喜欢这里的两个想法…但是你的想法似乎很好地利用了mvc的思想…谢谢你的建议!