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

ASP.NET Core:如何将Controller计算的SumValue传递至View并显示?

问题分析与解决方案

核心错误点

  • Controller的Sum方法中赋值语句错误:你给model.Sum赋值,但Model类的属性是SumValue,应改为model.SumValue = Sum();
  • Sum方法返回View时未传递更新后的model,导致视图无法获取计算后的值
  • 使用asp-for时,若表单未指定action,默认会提交到当前路由,而你的Sum方法对应的视图不存在(当前使用的是Index视图),因此出现找不到页面的错误

修正后的代码

Controller类

public IActionResult Index()
{
    var model = new SumModel();
    return View(model);
}

[HttpPost]
public IActionResult Sum(SumModel model)
{
   // 修正属性赋值
   model.SumValue = Sum();
   // 返回Index视图并传递更新后的model
   return View("Index", model);
}

// 补充Sum方法的实现(根据实际需求修改计算逻辑)
private string Sum()
{
    // 示例计算逻辑
    return "100";
}

View类(Index.cshtml)

确保表单正确提交到Sum方法,同时绑定显示计算后的值:

@model YourNamespace.SumModel
<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body>      
        <label>Sum Value:</label>      
        <!-- 使用asp-for绑定属性,设置readonly -->
        <input type="text" asp-for="SumValue" readonly />

        <!-- 添加表单,指定提交到Sum方法 -->
        <form asp-action="Sum" method="post">
            <button type="submit">计算</button>
        </form>
   </body> 
</html>

Model类(无需修改)

public class SumModel
{
    public string SumValue { get; set; }
}

额外说明

  • 确保你存在Index.cshtml视图,Sum方法返回时指定视图名"Index",就不会跳转到不存在的Sum视图
  • asp-for标签助手会自动绑定Model的属性值,只要Controller传递了正确的model,就能显示计算后的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:12:13