ASP.NET C# MVC:如何从控制器传递值到cshtml

5

我是一个刚接触Razor页面的新手,所以在模型目录下有一个包含以下值的类:

public int Id { set; get; }
public string CustomerCode { set; get; }
public double Amount { set; get; }

在我的控制器(.cs文件)中,我有以下内容:

 public ActionResult Index()
 {
     Customer objCustomer = new Customer();
     objCustomer.Id = 1001;
     objCustomer.CustomerCode = "C001";
     objCustomer.Amount = 900.78;
     return View();
 }

现在,我想通过我的Index.cshtml页面显示这些值,但是当我运行应用程序时,我只得到了我输入的实际代码而不是值:
这是我设置.cshtml页面的方式:
@model Mvccustomer.Models.Customer

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<div>
    The customer id is : <%= Model.Id %> <br />
    The customer id is : <%= Model.CustomerCode %> <br />
    The customer id is : <%= Model.Amount %> <br />
</div> 

我的问题是,我该如何将这些值显示出来?感谢任何帮助提供的协助。
3个回答

4
您需要使用Razor语法进行翻译。
使用您的示例:
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<div>
    The customer id is : @Model.Id <br />
    The customer id is : @Model.CustomerCode <br />
    The customer id is : @Model.Amount <br />
</div> 

1
你需要在返回中将值发送到视图。
return View(objCustomer);

这将允许模型绑定器发挥作用,使用 ActionResult 对象中的值填充您的 @model 类型的值。如果您正在使用 razor 而不是 <%= 语法,则还应该将其替换为 @ razor 语法,如 Matt Griffiths' answer 所示。

0

您的问题的完整解决方案:

控制器操作:您需要从控制器操作向视图发送对象

 public ActionResult Index()
     {
         Customer objCustomer = new Customer();
         objCustomer.Id = 1001;
         objCustomer.CustomerCode = "C001";
         objCustomer.Amount = 900.78;
         return View(objCustomer);
     }

视图:您需要在 Razor 语法中使用 @ 符号

 @model Mvccustomer.Models.Customer

    @{
        ViewBag.Title = "Index";
    }

    <h2>Index</h2>
    <div>
        The customer id is : @Model.Id <br />
        The customer id is : @Model.CustomerCode <br />
        The customer id is : @Model.Amount <br />
    </div> 

不确定为什么我的答案被踩了?请告诉我是谁踩了我的答案并给出原因。 - user9405863

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接