首页 > 解决方案 > ASP.NET MVC 将数据从控制器传输到使用 viewmodel 的视图

问题描述

在我的控制器中,我有

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。

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

解决方案


您的最后一个警报格式错误,应该如下所示

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

请参阅以下小提琴

https://dotnetfiddle.net/yc8F4Q


推荐阅读