【问题标题】:ASP.NET MVC transfer data from controller to view with viewmodelASP.NET MVC 将数据从控制器传输到使用 viewmodel 的视图
【发布时间】:2019-11-19 09:11:58
【问题描述】:

在我的控制器中我有

public ActionResult Index()
{
    //...
    //...
    var viewModel = new IndexViewModel()
    {
        MTohum = mTohum,
        STohum = sTohum,
        BTohum = bTohum,
        TKota = tKota,
        KKota = kKota,
        BKota = bKota,
    };
    //return Content("tkota : " + tKota.ToString() + " kkota : " + kKota.ToString() + " bkota : " + bKota.ToString());
    return View(viewModel);
}

当我删除评论并返回 Content() 时,我可以看到值不为空。

在视图方面:

//..html codes..//

<script>
    $(document).ready(function () {
        alert(@Model.TKota);
        alert(@Model.KKota);
        alert(@Model.BKota);
        alert(@Model.TKota + " " + @Model.KKota + " " + @Model.BKota);
    });
</script>

我的问题是:第 1、第 2 和第 3 条警报显示正确的信息,但是当我尝试在像第 4 条这样的警报中获取所有信息时,我可以得到@Model.TKota、@Model.KKota 但我无法得到@Model .BKota 值。

因此,我无法在以下几行中使用 @Model.BKota。

【问题讨论】:

  • alert("@Model.TKota + " " + @Model.KKota + " " + @Model.BKota); 看起来像一个语法错误,会因为打开 " 未关闭而发生。试试这个:alert(@Model.TKota + " " + @Model.KKota + " " + @Model.BKota);
  • 对不起,我编辑了我的代码。这与语法错误无关。Alert1 显示“100”,alert2 显示“200”,alert3 显示“300”,但 alert4 显示“100 200”而不是“100 200 300” "。

标签: asp.net asp.net-mvc asp.net-mvc-viewmodel


【解决方案1】:

您的最后一个警报格式错误,应该是这样的

alert('@Model.TKota @Model.KKota @Model.BKota');

看下面的小提琴

https://dotnetfiddle.net/yc8F4Q

【讨论】:

  • 对不起,我编辑了我的代码。这与语法错误无关。Alert1 显示“100”,alert2 显示“200”,alert3 显示“300”,但 alert4 显示“100 200”而不是“100 200 300” "。
  • @BerkanToptaş 在这种情况下,您在视图模型的BKota 中没有任何值,bKota 变量中有什么?你可以在我的小提琴中看到这是有效的。
  • 我通过从 double 中转换 int 解决了问题。bKota 变量是 double 类型,所以在我将它转换为 int 后它起作用了。我认为浮点数存在一些问题..
【解决方案2】:

线索是您无法在该语句之后使用变量,这通常意味着解析器由于语法错误而阻塞了某些东西。

alert("@Model.TKota + " " + @Model.KKota + " " + @Model.BKota); 看起来这里会出现语法错误,因为开头的 " 没有被关闭。

试试这个:

alert('@Model.TKota @Model.KKota @Model.BKota');

【讨论】:

  • 如果 TKoda 等不是数值,那就不行了
  • 对不起,我编辑了我的代码。这与语法错误无关。Alert1 显示“100”,alert2 显示“200”,alert3 显示“300”,但 alert4 显示“100 200”而不是“100 200 300” "。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2010-09-29
  • 1970-01-01
  • 2019-06-06
  • 2011-02-11
  • 1970-01-01
相关资源
最近更新 更多