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

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

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

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 asp.net-core razor
3个回答
1
投票

传递到类型为

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 代码,并将为您提供更多有用的信息。


0
投票

假设您必须在索引页上显示更新后的值,在这种情况下您的代码应如下所示:

控制器:

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

public SumModel Sum(SumModel model)
{
   model.SumValue= "100000";
   return model;
}

这将在索引页的只读字段中显示值 在这种情况下,问题是您没有在模型中传递更新的 SumValue 值。

我希望这能解决您的问题


0
投票

我正在尝试以这种方式将字段名称设置到字段中。 谁能指出我哪里错了?

根据您共享的代码片段,特别是在 Index 操作方法中,您只是简单地初始化了模型,没有任何值。这是:

    var model = new SumModel();
    return View(model);

所以它基本上是空的。因为您尚未为

SumValue
的模型属性设置任何值。结果看来你什么也得不到。

如果您想在

SumValue
中显示一个值,您应该执行以下操作:

public IActionResult Index()
{
    var model = new SumModel();
    model.SumValue = "10.00";
    return View(model);
}

现在您将在您的视野中获得价值:

enter image description here

enter image description here

另一方面,您还共享了一个POST方法,不清楚您在这里要做什么,因为您还没有共享您在里面做什么

model.Sum = Sum();

如果您根据发布的值执行任何操作,然后希望将该值绑定到索引中的模型中,则应该将该值返回到索引操作方法。如果您可以分享您的 Sum 方法的详细信息,也可以检查。

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