我有点想弄清楚如何显示字段的值
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
,并且它说找不到该值。
传递到类型为
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 代码,并将为您提供更多有用的信息。
假设您必须在索引页上显示更新后的值,在这种情况下您的代码应如下所示:
控制器:
public IActionResult Index()
{
var model = new SumModel();
return View(Sum(model));
}
public SumModel Sum(SumModel model)
{
model.SumValue= "100000";
return model;
}
这将在索引页的只读字段中显示值 在这种情况下,问题是您没有在模型中传递更新的 SumValue 值。
我希望这能解决您的问题
我正在尝试以这种方式将字段名称设置到字段中。 谁能指出我哪里错了?
根据您共享的代码片段,特别是在 Index 操作方法中,您只是简单地初始化了模型,没有任何值。这是:
var model = new SumModel();
return View(model);
所以它基本上是空的。因为您尚未为
SumValue
的模型属性设置任何值。结果看来你什么也得不到。
如果您想在
SumValue
中显示一个值,您应该执行以下操作:
public IActionResult Index()
{
var model = new SumModel();
model.SumValue = "10.00";
return View(model);
}
现在您将在您的视野中获得价值:
另一方面,您还共享了一个POST方法,不清楚您在这里要做什么,因为您还没有共享您在里面做什么
model.Sum = Sum();
如果您根据发布的值执行任何操作,然后希望将该值绑定到索引中的模型中,则应该将该值返回到索引操作方法。如果您可以分享您的 Sum 方法的详细信息,也可以检查。