ASP.NET MVC从控制器传输数据以使用viewmodel进行查看

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

在我的控制器中,我有:

    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()时,我可以看到值不为null。

在视图侧:

//..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.Net MVC的新手。

asp.net asp.net-mvc asp.net-mvc-viewmodel
2个回答
1
投票
您的上一个警报格式不正确,应该看起来像这样

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

请参见以下小提琴

https://dotnetfiddle.net/yc8F4Q


0
投票
线索是您不能在该语句之后使用变量,这通常意味着解析器由于语法错误而阻塞了某些内容。

[alert("@Model.TKota + " " + @Model.KKota + " " + @Model.BKota);似乎在这里由于打开“未关闭。”而出现语法错误。

尝试一下:

alert(@Model.TKota + " " + @Model.KKota + " " + @Model.BKota);

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