如何将变量数据从控制器传递到视图(MVC)

问题描述 投票:1回答:1

目前,我已经在模型中定义了一些变量,然后在各自的控制器中为其赋值。然后,我想让这些分配的值被我的视图中的变量使用,但是我不确定我需要做什么才能实现这个目标......

下面是我的类模型。

 public class Category
    {
       public string result { get; set; }

       public Array userData { get; set; }

    }

下面是控制器,我在其中为上述声明的变量分配了值。

 [HttpPost]
        public ActionResult ReadCategory()
        {
            var dataFile = Server.MapPath("~/App_Data/Category.txt");

            Category passCategory = new Category
            {
                result = "",
                delimiterChar = { ',' },
                userData = System.IO.File.ReadAllLines(dataFile)
            };

            return View(passCategory);
        }

最后,我想在我的视图中使用上面分配的变量... ... 但不知什么原因,变量出现了 "The name 'variableName' does not exist in the current context "的错误。

视图代码如下。

 @using (Html.BeginForm("ReadCategory", "Index", FormMethod.Post))
    {
        <div class="categoryList">

            @result
            @if (result == "")
            {
                foreach (String dataLine in userData)
                {

                    <p>
                        <a data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">

                            @dataLine.Split(delimiterChar)[0]
                        </a>

                        <button class="btn" id="@dataLine.Split(delimiterChar)[1]"><i class="fas fa-plus secondaryPlusIcon" id="@dataLine.Split(delimiterChar)[1]"></i></button>
                        <button class="btn" id="@dataLine.Split(delimiterChar)[1]"><i class="far fa-edit secondaryEditIcon" id="@dataLine.Split(delimiterChar)[1]"></i></button>
                        <button class="btn" id="@dataLine.Split(delimiterChar)[1]"><i class="far fa-trash-alt secondaryDeleteIcon" id="@dataLine.Split(delimiterChar)[1]"></i></button>
                    </p>

                    <div class="collapse" id="collapseExample">
                        <div class="card card-body w-25 p-3 collapsible">
                            @dataLine.Split(delimiterChar)[1] / Sub-category <!-- The ID value (Value after the delimiter) This ID value is associated to each category listed above-->
                        </div>
                    </div>

                }

            }
        </div>
    }

(视图中的大部分代码都是不必要的,但是我想特别关注一下这些变量。) "result","userData "和 "delimiterChar")~这些变量会抛出上面描述的错误。

注意:我目前使用的是视图中的命名空间。

@使用projectName.Models

@model IEnumerable

很明显,我在这里遗漏了一些东西,我对MVC非常陌生,如果有任何关于解决这个问题的指导,我将非常感激,谢谢 :)

c# asp.net-mvc model-view-controller
1个回答
4
投票

设置 Category (如果需要,请使用适当的命名空间)作为您的模型,在您的视图中使用页面指令。

@model Category

那么 与其使用 result 你应该作为 Model.result

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