You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET C# MVC:如何将控制器值传递至cshtml页面?

解决Razor页面显示Customer对象数据的问题

嘿,我来帮你搞定这个问题!你现在的核心问题是没有把创建好的Customer对象传递给视图,所以页面根本拿不到你设置的那些属性值。咱们一步步来修正:

第一步:修改控制器代码,传递模型到视图

你当前的return View();没有传入任何数据,视图自然接收不到。把代码改成这样,把创建好的objCustomer传给视图:

public ActionResult Index() { 
    Customer objCustomer = new Customer(); 
    objCustomer.Id = 1001; 
    objCustomer.CustomerCode = "C001"; 
    objCustomer.Amount = 900.78; 
    // 将Customer对象传递给视图
    return View(objCustomer); 
}

第二步:设置强类型视图(推荐)

为了让视图能识别你的Customer模型,还能获得智能提示,在Index.cshtml的最顶部添加@model指令,记得把YourProjectName换成你自己的项目名称(比如你的项目叫ShopDemo,那就是ShopDemo.Models.Customer):

@model YourProjectName.Models.Customer

第三步:在视图中渲染数据

现在视图已经能拿到模型数据了,你可以用多种方式显示:

方式1:直接输出属性

<div class="customer-info">
    <h4>客户详情</h4>
    <p>客户ID:@Model.Id</p>
    <p>客户编码:@Model.CustomerCode</p>
    <p>账户金额:@Model.Amount</p>
</div>

方式2:用表格展示(更规整)

<table style="border-collapse: collapse; width: 300px;">
    <thead>
        <tr>
            <th style="border:1px solid #ccc; padding:8px;">字段</th>
            <th style="border:1px solid #ccc; padding:8px;">值</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="border:1px solid #ccc; padding:8px;">客户ID</td>
            <td style="border:1px solid #ccc; padding:8px;">@Model.Id</td>
        </tr>
        <tr>
            <td style="border:1px solid #ccc; padding:8px;">客户编码</td>
            <td style="border:1px solid #ccc; padding:8px;">@Model.CustomerCode</td>
        </tr>
        <tr>
            <td style="border:1px solid #ccc; padding:8px;">账户金额</td>
            <td style="border:1px solid #ccc; padding:8px;">@Model.Amount</td>
        </tr>
    </tbody>
</table>

可选:用ViewBag传递数据(不推荐,强类型更可靠)

如果你不想用强类型,也可以通过ViewBag临时传递数据,控制器代码改成:

public ActionResult Index() { 
    Customer objCustomer = new Customer(); 
    objCustomer.Id = 1001; 
    objCustomer.CustomerCode = "C001"; 
    objCustomer.Amount = 900.78; 
    // 把对象存入ViewBag
    ViewBag.Customer = objCustomer;
    return View(); 
}

然后视图里这样获取(需要强制类型转换):

<p>客户ID:@((YourProjectName.Models.Customer)ViewBag.Customer).Id</p>

不过还是更推荐用强类型视图,不仅有智能提示,还能在编译阶段发现错误,比ViewBag更可靠。

内容的提问来源于stack exchange,提问作者user1724708

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:48:49