【问题标题】:Show the value returned from the method on the view在视图上显示方法返回的值
【发布时间】:2023-03-24 16:20:01
【问题描述】:

型号

public class Car
{
    public string Brand { get; set; }
    public int Price { get; set; }
    public int MaxSpeed(int speed)
    {
        return speed * 0.8;
    }
}

控制器

    Car car = new Car();
    car.Brand= "ferrari-2020";
    car.Price = 50000;
    car.MaxSpeed(450);

    return View("Index", car);

查看

@model Car

<div class="text-center">
   @Model.Brand
   @Model.Price

   How do I show the value returned from the controller?
   @Model.MaximumHiz()
 </div>

我可以将方法分配给变量并将其显示在视图上,但我该如何做不同的事情呢?

【问题讨论】:

  • 您需要一个整数作为 MaxSpeed 函数的输入,但尚未提供该输入。
  • 如果我在 View 上重视 MaxSpeed,它在屏幕上,但我给了 Controller 450 for MaxSpeed。我怎么给你看?
  • 为什么不像其他值一样分配它们? car.MaxSpeed = 450;
  • 是的,正如@MathewHD 所说,您可以为 MaxSpeed 创建一个属性而不是函数。
  • 我正在创建简单的示例,因为我是新手。如果我想对返回的值进行不同的处理并且如果我想为它使用函数,我该怎么做?我改变了 MaxSpeed。谢谢。

标签: c# asp.net asp.net-mvc oop asp.net-core


【解决方案1】:

您可以将 MaxSpeed 创建为带有支持字段的属性

private int _maxSpeed;
public string Brand { get; set; }
public int Price { get; set; }

public int MaxSpeed
{
    get => (int) (_maxSpeed * 0.8);
    set => _maxSpeed = value;
}

然后用car.MaxSpeed = 450;设置它

【讨论】:

  • 谢谢,这正是我想要的答案。
【解决方案2】:

我不完全确定,您尝试做不同的事情,但原则上您可以为模型分配值并使用它们来呈现视图。 视图本身不知道控制器,因此您只能从模型中渲染值。从您的屏幕截图中:您缺少调用方法 MaximumSpeed(100) 的速度参数。

【讨论】:

  • 我不想在 View 中重视 MaxSpeed。我想在控制器中显示赋予 MaxSpeed 的值 450。我希望我说清楚了
猜你喜欢
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 2014-09-02
  • 2014-09-24
相关资源
最近更新 更多