
[英]Problem accessing ViewData in HTML for MVC3 Razor project
[英]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.