如何将数据从控制器传递到ASP.net MVC中的视图?

Vis*_*Raj 4 c# asp.net asp.net-mvc asp.net-mvc-4

净MVC.

对于我认识的每个人,我需要做的事情非常简单.我需要在控制器之间传递数据以在ASP.net MVC中查看.

代码我用控制器编写.

public ActionResult Upload()
{

    ViewBag.Message = "Make a quiz Question here";
    ViewData["CurrentTime"] = DateTime.Now.ToString();
    return View();
}
Run Code Online (Sandbox Code Playgroud)

这是我在视图中添加的代码.

<h2>@ViewBag.Title.</h2>
<h3>@ViewBag.Message</h3>
<div>
    <%: ViewData["CurrentTime"] %>
</div>
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个程序时,它显示出来

<%: ViewData["CurrentTime"] %> 
Run Code Online (Sandbox Code Playgroud)

相反,我需要当前时间的价值.

Vad*_*nov 5

您无需从控制器传递当前时间等数据.你可以写

<div>
    @DateTime.Now
</div>
Run Code Online (Sandbox Code Playgroud)

在你看来.在服务器中呈现的视图然后它将呈现为值@DateTime.Now.

此外,您可以使用ToString方法格式化视图:

<div>
    @DateTime.Now.ToString("yyyy.MM.dd")
</div>
Run Code Online (Sandbox Code Playgroud)

将呈现给

<div>
    2016.06.14
</div>
Run Code Online (Sandbox Code Playgroud)

请注意,代码将显示可能与客户端时区不同的服务器时间.要显示当前时间,您应该使用JS代码.

它不是静态数据,但它也不是真正的模型或业务数据,它可以在没有输入参数的视图中计算.消息也不是模型而不是依赖于控制器的数据,它可以在视图中硬编码或从模型数据中检索:

<h3>Make a quiz Question here</h3>
Run Code Online (Sandbox Code Playgroud)

如果您需要实际从控制器传递数据并且其数据取决于内部状态或输入控制器参数或具有"业务数据"的其他属性,则应使用MVC模式的模型部分:

模型对象是应用程序的一部分,它实现应用程序数据域的逻辑.通常,模型对象检索并存储数据库中的模型状态.例如,Product对象可能从数据库检索信息,对其进行操作,然后将更新的信息写回SQL Server数据库中的Products表.

您可以在此处查看详细信息,或查看Microsoft教程的ASP.NET MVC部分中的模型和验证.

  1. 添加模型类:

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Street { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public int Zipcode { get; set; }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将模型对象传递给视图:

    public ActionResult Index()
    {
        var model = GetModel();
        return View(model);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 通过定义模型类型添加强类型视图:

    @model Person
    
    Run Code Online (Sandbox Code Playgroud)
  4. Model在视图中使用变量:

    @Model.City
    
    Run Code Online (Sandbox Code Playgroud)