如何从控制器传递值以在文本字段或标签中查看和显示它

问题描述 投票:0回答:1

我有点想弄清楚如何显示字段的值

model.SumValue
,我正在控制器类的输入字段或标签中计算该值。

控制器类-

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

    [HttpPost]
    public IActionResult Sum(SumModel model)
    {
       model.Sum= Sum();
       return View();
    }

模型类-

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

查看课程-

@model YourNamespace.SumModel
<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body>     
          <label>Sum Value:</label>     
          <input type="text" value="@Model.SumValue" readonly /> 
   </body> 
</html>

我正在尝试以这种方式将字段名称设置到

<input/>
字段中。

<input type="text" asp-for="SumValue" />

谁能指出我哪里错了?

更新 - 当我尝试显示该值时,它会将我带到不同的页面

/Home/Sum
,并且它说找不到该值。

c# asp.net asp.net-mvc
1个回答
0
投票

传递到类型为

SumModel
的视图日期模型时,应在视图中声明相同的类型:

@model YourNamespace.SumModel
<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body>     
          <label>Sum Value:</label>     
          <input type="text" value="@Model.SumValue" readonly /> 
   </body> 
</html>

可以省略

@Model
前缀,因为编译器构造属性
id
name
使用
@model
定义中使用的模型声明。

更新问题后,我们可以看到

SumValue
尚未初始化。尝试定义一些值:

public IActionResult Index()
{
    var model = new SumModel() { SumValue = "Test-Text"};
    return View(model);
}

此外,要检查 Razor 引擎生成的 HTML 内容是什么,请在浏览器中单击鼠标右键,然后在弹出菜单中选择

View Page Source
。这将帮助您了解从您的
.cshtml
生成了哪些 HTML 代码,并将为您提供更多有用的信息。

© www.soinside.com 2019 - 2024. All rights reserved.