gpt4 book ai didi

asp.net - 我可以在 .aspx 页面中使用 ViewBag 吗?

转载 作者:行者123 更新时间:2023-12-05 00:19:31 25 4
gpt4 key购买 nike

我必须将我的 UI 页面从 .cshtml 文件移动到 .aspx 文件。现在我有几个编译错误。

首先是“ViewBag”在当前上下文中不存在。我不能在 .aspx 中使用它吗?如果不是,什么是好的替代品?

其次,.cshtml 页面有一个模型声明:

@model myProject.Models.Navigation

我更改了它,以便它可以在 .aspx 页面中工作,如下所示:
<%@ Import Namespace="myProject.Models" %>

我仍然不确定这是一个正确的替代品,因为我无法在不出错的情况下包含“导航”这个词。现在,在我曾经拥有的代码中:
@foreach (myProject.Models.Navigationitem item in Model.navigationItems){...

我已将其替换为:
<% foreach (myProject.Models.Navigationitem item in Model.navigationItems){...

我得到这个错误:

The name 'Model' does not exist in the current context



显然,我是唯一一个从 razor 变成 aspx 的人,因为网上有很多关于它的信息。感谢任何帮助。

最佳答案

WebForms 通常不使用 ViewBag ,这只是使数据可用于 ASP.Net MVC 中的 View 的一种方法。使用 WebForms,使数据可用于“ View ”(包含 HTML 的 aspx 页面)的一种好方法是公开包含该数据的属性。

MVC 方式可能是设置 ViewBag.MyValue = "Some Value";在您的 Controller 中,并在您的 View 中使用 <h1>@ViewBag.MyValue</h1> 引用它.要在 WebForms 中执行等效操作,您首先需要在代码隐藏中定义一个属性:

protected string MyValue { get; set; }

然后,在某处设置该值,也许在您的 Page_Load 中。 :
protected void Page_Load (object sender, EventArgs e)
{
this.MyValue = "Some Value";
}

并使用 WebForms 语法在页面上写入值:
<h1><%= MyValue %></h1>

对于您的具体情况,您似乎实际上并未使用 ViewBag .没关系,您也可以使对象作为属性可用:
protected MyProject.Models.Navigation Model { get; set; }

protected void Page_Load (object sender, EventArgs e)
{
this.Model = SomeMethodThatReturnsModel();
}

定义了属性并设置了值后,上面的 ASPX 代码应该可以正常工作。

关于asp.net - 我可以在 .aspx 页面中使用 ViewBag 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com