在vs2013中编写的mvc项目,在cshtml端一直提示不存“当前上下文中不存在ViewData”,虽然不影响编译和运行,但是不能发布,已发布就提示这个错误,请问大神们如何解决,比较着急!!!
1条回答 默认 最新
你知我知皆知 2024-08-04 18:34关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题是由于视图模型(ViewModel)的属性没有正确设置到控制器。在ASP.NET MVC中,如果想使用视图模型中的属性来更新控制器的状态,那么必须将这些属性设置为
public或者protected。以下是一个示例:
[ViewResult] public ActionResult MyAction() { var model = new SomeModel(); // 设置model的一些属性 model.Property1 = "Value1"; model.Property2 = "Value2"; return View(model); }在这个例子中,我们创建了一个名为
SomeModel的新类,并将其添加到了视图模型中。然后,我们在视图文件中设置了一些属性,例如Property1和Property2。最后,当用户请求我们的MyAction方法时,我们可以从视图模型获取这些属性并使用它们来更新控制器状态。另外,如果你是在使用EF6或以上版本的数据库操作,你可能需要确保你的数据库对象也具有相应的公共属性。例如,如果你有一个名为
User的对象,你可以这样定义它:public class User { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } public virtual ICollection<Role> Roles { get; set; } }现在,当你使用
User对象来更新控制器状态时,你需要提供一个virtual的方法来访问其子对象。解决 无用评论 打赏 举报