Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC-如何发送到包含列表的局部视图ViewModel_C#_Asp.net Mvc_Asp.net Mvc 4_Model_Asp.net Mvc Partialview - Fatal编程技术网

C# MVC-如何发送到包含列表的局部视图ViewModel

C# MVC-如何发送到包含列表的局部视图ViewModel,c#,asp.net-mvc,asp.net-mvc-4,model,asp.net-mvc-partialview,C#,Asp.net Mvc,Asp.net Mvc 4,Model,Asp.net Mvc Partialview,我是MVC的初学者,我有一个web应用程序,在我的控制器中,我声明了一个对象列表(来自访问者的反馈),然后将其发送到视图,视图显示它。看起来像这样。声明: public class TrekFeedbackItem { public string trekid { get; set; } public string comment { get; set; } public string author { get; set; }

我是MVC的初学者,我有一个web应用程序,在我的控制器中,我声明了一个对象列表(来自访问者的反馈),然后将其发送到视图,视图显示它。看起来像这样。声明:

public class TrekFeedbackItem
    {   
        public string trekid { get; set; }
        public string comment { get; set; }
        public string author { get; set; }

        public TrekFeedbackItem(string trekid, string comment, string author)
        {   this.trekid = trekid;
            this.comment = comment;
            this.author = author;
        }    
    }
使用方法:

List<TrekFeedbackItem> feedbackList = new List<TrekFeedbackItem>
{
  //constructor called, data entered into the list 
}
return View(trekname, feedbackList);
列表反馈列表=新列表
{
//调用构造函数,将数据输入列表
}
返回视图(trekname、反馈列表);
然而,现在我还需要传递另一个列表,我们称之为relatedblogsList。作为第一步,我决定将我的反馈列表封装到ViewModel中(一旦它起作用,添加另一个不同对象的列表)

public类TrekViewModel
{
公共列表反馈{get;set;}
}               
并按如下方式填写数据:

TrekViewModel trek = new TrekViewModel();
trek.feedback = new List<TrekFeedbackItem>
    {
    //insert data here     
    };
return View(view, trek);
TrekViewModel trek=new TrekViewModel();
trek.feedback=新列表
{
//在此处插入数据
};
返回视图(视图、跋涉);
问题是-如何将此模型发送到局部视图以及如何访问它


非常感谢

您可以像下面这样将数据传递到局部视图

从控制器返回此视图:

return PartialView("_partial_viewname", trek);
然后在局部视图的开头:

@model Models.TrekViewModel 

之后,您可以在局部视图中使用
模型。反馈

您可以将数据传递到局部视图,如下所示

从控制器返回此视图:

return PartialView("_partial_viewname", trek);
然后在局部视图的开头:

@model Models.TrekViewModel 

之后,您可以在部分视图中使用
模型。反馈

将动作控制器的返回类型设置为“PartialView”而不是“视图


在这种情况下,若应用程序不能按预期工作,那个么构建它并重新运行它

将动作控制器的返回类型设置为“PartialView”而不是“View



在这种情况下,若应用程序不能按预期工作,那个么构建它并重新运行它

您好,如果我在主布局中使用
return PartialView(“\u partial\u viewname,trek”);
,我会得到一个错误,即当前上下文中不存在名称trek。知道如何修复它吗?您好,返回PartialView(\u partialViewName,viewModel);应该在控制器操作方法中,局部视图应该有@model modelPath.TrekViewModel,如果这两个步骤正确,那么在同一上下文中的model对象(在您的例子中是trek view model)。您好,现在我可以看到(在我将断点放入局部视图后)模型被正确发送。最后一个问题-我想迭代这个模型并显示数据。怎么做?我使用这个命令-
foreach(Model.feedback中的var std作为IListHi,在添加类似于foreach(Model.feedback中的var std)的代码后,您将遍历Model.feedback列表项无需再次进入反馈列表,因为每个循环中的项目都被分配给std变量。所以也可以使用@std.comment,但当我使用@std.comment时,Visual Studio会显示错误“MVC.Controllers.TrekViewModel不包含'comment'的定义,并且没有接受MVC.Controllers.TrekViewModel类型的第一个参数的扩展方法'comment'”Hi,如果我使用
返回PartialView(“\u partial\u viewname,trek)
在我的主布局中,我发现错误,当前上下文中不存在名称trek。知道如何修复它吗?嗨,返回PartialView(_partialViewName,viewModel);应位于控制器操作方法中,局部视图应具有@model modelPath.TrekViewModel,如果这两个步骤正确,则在同一上下文中建模对象(在您的情况下,它是trek view model)。您好,现在我可以看到了(在我将断点放入局部视图后)该模型已正确发送。最后一个问题-我想遍历该模型并显示数据。如何操作?我使用此命令-
foreach(Model.feedback中的var std作为IListHi,在添加类似foreach(Model.feedback中的var std)的代码后,您将遍历Model.feedback列表项无需再次进入反馈列表,因为每个循环中的项目都分配给std变量。因此,也可以使用@std.comment,但当我使用@std.comment时,Visual Studio会显示错误“MVC.Controllers.TrekViewModel不包含“comment”的定义,也没有接受MVC.Controllers.TrekViewModel类型第一个参数的扩展方法“comment”。在视图中,您插入的是TrekViewModel类的对象,而不是列表本身。trek“不是列表。您需要将局部视图的模型设置为
TrekViewModel
在视图中,您正在插入TrekViewModel类的对象,而不是列表本身。“trek”不是列表。您需要将局部视图的模型设置为
TrekViewModel
嗨,我正在主布局中使用此命令-
@Html.partial。”(“~/Views/Shared/Sub/sidebar\u trek.cshtml”)
。在谷歌搜索了一段时间后,我发现我不需要通过“跋涉”"再次访问局部视图,如果我将其发送到主布局,它可以通过局部视图访问。我现在不知道的是-如何在局部视图中访问此模型?请确保主视图与视图模型是强类型的,否则它将无法工作。在主布局的顶部添加
@model Models.TrekViewModel
。立即您可以在视图主体中访问此模型,如下所示:
@model.feedback
。谢谢。当我将断点放入局部视图时,我可以看到包含数据的模型-数据已正确发送。最后一个问题-我想迭代此模型并显示数据。如何操作?我使用此命令-
foreach(在Model.feedback中的var std作为IListTry
@std.comment
。以前尝试过,也不起作用。当我在调试模式下打开部分视图时,我看到以下结构:this->Base->Model->feedback->[0]/[1](模型现在有2个条目)->properties author/comment/trekid(具有正确的值)。现在只想知道如何显示它们:)您好,我在th中使用此命令