Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 MVC3 Razor编辑器模板和其他参数_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc 3 MVC3 Razor编辑器模板和其他参数

Asp.net mvc 3 MVC3 Razor编辑器模板和其他参数,asp.net-mvc-3,Asp.net Mvc 3,我是mvc3和razor的新手,而C#正是因为这一点,一家小公司刚刚给了我一份合同,让我在一个失败的项目上完成这个庞大的项目。。。现在我需要根据用户保存的选择创建一个图书表。。。书籍目前在模型中有大约40种不同的信息,我想知道如何在模板编辑器或任何其他方式中正确设置它 现在在视图中看起来是这样的: <table> <tr class="header"> @if (!((List<string>)Session["searchPre

我是mvc3和razor的新手,而C#正是因为这一点,一家小公司刚刚给了我一份合同,让我在一个失败的项目上完成这个庞大的项目。。。现在我需要根据用户保存的选择创建一个图书表。。。书籍目前在模型中有大约40种不同的信息,我想知道如何在模板编辑器或任何其他方式中正确设置它

现在在视图中看起来是这样的:

<table>
      <tr class="header">
         @if (!((List<string>)Session["searchPreferences"]).Contains("Authors"))
         {
              <td>Author</td>
         }
         @if (!((List<string>)Session["searchPreferences"]).Contains("bookName"))   
         {
              <td>bookName</td>
         }
         @if (!((List<string>)Session["searchPreferences"]).Contains("editorName"))
         {
              <td>editorName</td>
         }
     </tr>


        @foreach (BookModel book in Model.bookList)
        { 
        <tr class="element">
            @if (!((List<string>)Session["searchPreferences"]).Contains("Author"))
            {
                <td>@book.Author</td>
            }
            @if (!((List<string>)Session["searchPreferences"]).Contains("editorName"))
            {
                <td>@book.editorName</td>
            }
        </tr>
      + 1 <tr> </tr> ... for each 40 attributes in books
    </table>

@如果(!((列表)会话[“搜索首选项])。包含(“作者”))
{
作者
}
@如果(!((列表)会话[“搜索首选项])。包含(“书名”))
{
书名
}
@如果(!((列表)会话[“searchPreferences”])。包含(“editorName”))
{
编辑名称
}
@foreach(Model.bookList中的BookModel book)
{ 
@如果(!((列表)会话[“搜索首选项])。包含(“作者”))
{
@书的作者
}
@如果(!((列表)会话[“searchPreferences”])。包含(“editorName”))
{
@book.editorName
}
+书中每40个属性对应1个
如何制作编辑器模板并包含搜索首选项(存储在会话中或LogUser模型上)

其他问题:

我已经掌握了使用@Html.EditorFor(model=>model.Books)的概念,它会循环抛出我的书籍列表,但是如何确保它只显示用户想要的内容呢?比如我可以向模板传递一些参数,并使用传递的列表来验证每一列

还有没有一种更简单的方法来写下我的模板……有点像“在我的书模型中获取每个属性并创建一行,如果用户选择了它”,因为客户提供了一种新的方式来对他的书进行分类,每次他改变想法时,我都必须重新编码……我的上级经常这样做。(由于我的经验很少,所以报酬很高,所以即使项目启动错误,客户拒绝让我们从头开始,我也会努力解决这个问题)


提前非常感谢您提供的任何信息、帮助等……即使这是指向一个好的演示或博客条目的链接,也会有所帮助。

我不能100%确定您想做什么,但如果我理解正确,您就有一个表中显示内容的用户首选项列表。我给您的建议是,构建一个已经格式化了内容的视图模型按您希望的方式提供数据

也就是说,当您将模型传递到视图时,您只有用户在其搜索首选项中指定的列和数据

可以有一个Book对象,其中包含列列表,每个“列”都是自己的对象,带有标签和值

PublicBookViewModel() { 列表数据{get;set;} }

公共专栏() { 字符串标签{get;set;} 字符串值{get;set;} }

加载模型时,您将仅为用户需要的数据创建列

也许有更好的方法可以让你格式化它,我只是在一瞬间想到了这一点。但我认为你应该看看如何处理数据服务器端的过滤和格式化,而不是页面上的Razor

编辑器模板用于自定义对象在html页面上的表示方式,特别是当该对象将在页面上的许多位置使用时,这样您就不需要重复自己的操作。它实际上不是用于过滤数据的


如果这没有意义或者我误解了您,请告诉我。

我不100%确定您想做什么,但是如果我理解正确,您有一个用户首选项列表,可以在表中显示什么。我的建议是,构建一个视图模型,该模型已经按照您希望的方式格式化了数据

也就是说,当您将模型传递到视图时,您只有用户在其搜索首选项中指定的列和数据

可以有一个Book对象,其中包含列列表,每个“列”都是自己的对象,带有标签和值

PublicBookViewModel() { 列表数据{get;set;} }

公共专栏() { 字符串标签{get;set;} 字符串值{get;set;} }

加载模型时,您将仅为用户需要的数据创建列

也许有更好的方法可以让你格式化它,我只是在一瞬间想到了这一点。但我认为你应该看看如何处理数据服务器端的过滤和格式化,而不是页面上的Razor

编辑器模板用于自定义对象在html页面上的表示方式,特别是当该对象将在页面上的许多位置使用时,这样您就不需要重复自己的操作。它实际上不是用于过滤数据的


如果这不合理或我误解了您,请告诉我。

好的,我实际上是到处走动,手动输入,您可以使用会话项,检查用户是否喜欢显示该列,但我仍然希望pro对此进行输入,因为这感觉怪怪的(我只是从视图中获取代码,并将其放在编辑器模板中,但基本上是一样的混乱,如果客户端进行了重大更改,则很容易自杀)好的,我实际上已经手动输入了它,你可以使用会话项检查用户是否喜欢显示该列,但我还是喜欢pro的输入,因为它感觉很奇怪(我只是从视图中获取代码,并将其放在编辑器模板中,但基本上是一样的混乱,如果客户端进行了重大更改,则很容易自杀)我向工作中的大四学生询问这一点,他说我们必须输入所有数据,因为用户可以在飞行中决定显示什么和不显示什么……他今天不在,明天也不在,但我会在明天早上给他发一封电子邮件来确定这一点