相关疑难解决方法(0)

调用DisplayNameFor的IEnumerable重载

这适用于抓取标题(NOT VALUES):

@model IEnumerable<SomeModel>
...
<th>@Html.DisplayNameFor(m => m.SomeModelProperty)</th>
Run Code Online (Sandbox Code Playgroud)

如果SomeModelProperty是:

[Display(Name = "An Excellent Header")]
SomeModelProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后它会在标题th元素中显示"An Excellent Header" .

你会认为这不会起作用,因为模型是IEnumerable,它没有m.SomeModelProperty,但是它起作用,因为HtmlHelper有一个HtmlHelper<IEnumerable<TModel>>lambda的参数TModel不是IEnumerable<TModel>.由于这仅使用元数据,因此不需要集合中的项目.(虽然intellisense m.会欺骗你,让你认为它是一个集合).我不确定何时添加了这个很酷的重载,但是对于Index.cshtml来说非常方便,并且消除了@Html.DisplayNameFor(m => @Model.FirstOrDefault().SomeModelProperty)我想要避免的时髦事物.

http://msdn.microsoft.com/en-us/library/hh833697(v=vs.108).aspx

但是,当我的模型不是IEnumerable时,我无法弄清楚如何让它工作,而是包含IEnumerable作为属性,例如:

public class SomeList
{
   public List<SomeModel> SomeModels { get; set; }
   public int Page { get; set; }
   public DateTime CurrentAsOf { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望明确使用泛型类型参数,但我认为类型参数是由从页面创建的HtmlHelper中逐渐减少的引擎指定的.我可以在页面中声明一个新的HtmlHelper,还是以某种方式明确指定类型参数?

Index.cshtml:

@model SomeList
//No idea how to do this:
@Html.DisplayNameFor<IEnumerable<SomeModel>>(m => …
Run Code Online (Sandbox Code Playgroud)

generics asp.net-mvc razor

24
推荐指数
2
解决办法
9016
查看次数

PagedList MVC不包含PagedListPager的定义

我不知道为什么PageCount,PageNumber和PageListPager不包含定义或无法找到.它问我是否缺少using指令或汇编引用,但我在我的用户控制器中有它.

Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
 to 
@Html.PagedListPager( Model, page => Url.Action("Index", new { page, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter }) )
Run Code Online (Sandbox Code Playgroud)

注意:以下图像和代码仅供参考

数据库错误

Visual Studio错误

控制器\ UserController.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RecreationalServicesTicketingSystem.Models;
using RecreationalServicesTicketingSystem.DAL;
using PagedList;

namespace RecreationalServicesTicketingSystem.Controllers
{
    public class UserController : Controller
    {
        private IssueContext db = new IssueContext();

        //
        // GET: /User/

        public ViewResult Index(string sortOrder, string currentFilter, string searchString, int? page)
        {
            ViewBag.CurrentSort …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc nuget-package asp.net-mvc-4

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net-mvc ×2

asp.net-mvc-4 ×1

c# ×1

generics ×1

nuget-package ×1

razor ×1