Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 ViewData的替代方案?_Asp.net Mvc_Views_Controller_Server Side_Viewdata - Fatal编程技术网

Asp.net mvc ViewData的替代方案?

Asp.net mvc ViewData的替代方案?,asp.net-mvc,views,controller,server-side,viewdata,Asp.net Mvc,Views,Controller,Server Side,Viewdata,我对MVC、ASP.net以及服务器端脚本都是新手 我正在www.asp.net/mvc上看一段教程视频,那个人在那里解释一个模板。他解释说,控制器使用viewdata向视图发送信息 如果我错了,请纠正我,但我相信它是这样使用的: <%=Html.Encode(someObject) %> 控制器:ViewData[“PropertyName”]=值 查看: 这是正确的用法吗 有什么比使用ViewData更好的方法呢?它有什么不好的地方?我建议使用ViewData集合来处理一些非常

我对MVC、ASP.net以及服务器端脚本都是新手

我正在www.asp.net/mvc上看一段教程视频,那个人在那里解释一个模板。他解释说,控制器使用viewdata向视图发送信息

如果我错了,请纠正我,但我相信它是这样使用的:

<%=Html.Encode(someObject) %>
控制器:
ViewData[“PropertyName”]=值

查看:

这是正确的用法吗


有什么比使用ViewData更好的方法呢?它有什么不好的地方?

我建议使用ViewData集合来处理一些非常重要的视图情况


在大多数情况下,我会对每个视图使用单独的。

与使用ViewData相比,更好的方法是创建一个新的模型对象,并将其传递给强类型为模型的视图

模型(Models/MyModels.cs)

查看(查看/My/Index.aspx)


Html.Encode可以这样使用:

<%=Html.Encode(someObject) %>

或者这个,如果你是


ViewData适用于不确定需要什么的完全随机数据

如果要构造定义良好的视图,则需要使用强类型视图。这些允许视图从特定业务对象(或者更有用的是,从ViewModel)继承以显示数据。在这种情况下,您可以访问强类型模型成员ie Model.SomeProperty,而不是ViewData[“SomeProperty”]


此外,Html.Encode还可以放在重复用户输入数据的数据元素周围。这是为了防止HTML注入。

Justin对于ViewData的使用以及视图模型的使用都是正确的(这肯定是最适合您需要的解决方案)


课程是另一种选择,但它可能是一个滑坡,但你确实要求其他选择。

你真的应该在每篇文章中只回答一个问题。我想把“Html.Encode()是如何使用的”问题转移到一个单独的问题,因为它与原始问题无关。我假设您的意思是
,而不是
public class MyController : Controller
{
    public ActionResult Index()
    {
        MyModel model = new MyModel()
        {
            PropertyName = "My Property Name"
        };

        return View(model);
    }
}
<%=Html.Encode(someObject) %>
<%: someObject %>