MVC 3 razor TextBoxFor 与 ViewBag 项目抛出错误?

发布于 2024-11-08 01:09:10 字数 384 浏览 0 评论 0原文

尝试使用我从 ViewBag 收到的数据在网页上打印出几种不同的表格。

第一个语句有效,但第二个语句无效:

@Html.EditorForModel(ViewBag.PI as PItem)
@Html.TextBoxFor(x => (ViewBag.PI as PItem).Text)

我还尝试了以下操作(相同的错误消息):

@Html.TextBoxFor(x => ViewBag.PI.Text)

第一个语句为 PItem 创建模型,第二个语句在我尝试为 PItem 内的文本项创建文本框时抛出错误。是否可以使用帮助程序的文本框打印 ViewBag 中的数据而不是模型中的数据?

Trying to print out several different forms on the webpage with the data that i have received from the ViewBag.

The first statement works but no the second:

@Html.EditorForModel(ViewBag.PI as PItem)
@Html.TextBoxFor(x => (ViewBag.PI as PItem).Text)

I also tried the following (same error message):

@Html.TextBoxFor(x => ViewBag.PI.Text)

The first one creates a model for the PItem and the second throws an error when i try to create a textbox for the Text item inside PItem. Is it possible to use the textboxfor helper to print out data from the ViewBag and not from the model?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦幻的心爱 2024-11-15 01:09:10

TextBoxFor 旨在与强类型视图和视图模型一起使用。因此,剪切 ViewData/ViewBag c..p 并正确使用这些帮助器:

@model MyViewModel
@Html.TextBoxFor(x => x.Text)

如果需要循环,请使用 EditorTemplates:

@model IEnumerable<MyViewModel>
@Html.EditorForModel()

并在相应的编辑器模板内:

@model MyViewModel
<div>@Html.TextBoxFor(x => x.Text)</div>

不仅现在我们拥有 IntelliSense 和强类型,而且除此之外,该代码还可以工作。

结论和我的 2 美分:不要在 ASP.NET MVC 中使用 ViewBag/ViewData 并感到高兴。

TextBoxFor is intended to be used with strongly typed views and view models. So cut the ViewData/ViewBag c..p and use those helpers correctly:

@model MyViewModel
@Html.TextBoxFor(x => x.Text)

If you need to loop, use EditorTemplates:

@model IEnumerable<MyViewModel>
@Html.EditorForModel()

and inside the corresponding editor template:

@model MyViewModel
<div>@Html.TextBoxFor(x => x.Text)</div>

Not only that now we have IntelliSense and strong typing but in addition to this the code works.

Conclusion and my 2¢: don't use ViewBag/ViewData in ASP.NET MVC and be happy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文