标签: razor

是否可以在MVC剃刀视图的通用列表的开头迭代一些特定数量的项目?

我认为标题不言自明,我知道我可以使用for循环但理想情况下我正在寻找类似的东西

List<MyClass> myList = ...
foreach (MyClass item in myList.Take(3)) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

我可以做类似的事吗?

谢谢

UPDATE

我在剃刀MVC视图上尝试了这个代码并且它没有用,我得到了System.Collections.Generic.List<MyClass>' does not contain a definition for 'Take'例外.我很困惑,所以问了这个问题.显然问题不正确所以我更新了.

我尝试@using System.Linq在视图顶部添加,但它仍然不起作用,我得到相同的异常.

c# linq asp.net-mvc razor

-2
推荐指数
1
解决办法
312
查看次数

如何在视图中显示IEnumerable?

我正在为产品做评论部分,并且在显示评论视图时遇到一些问题。我用 2 个模型制作了模型,以便在一个视图中显示它们,但我将 IEnumerable 显示为列表的方式导致出现错误。我如何修改我的代码才能使其正常工作?

模型

public class DetailsViewModel
{
    public Product Product { get; set; }
    public IEnumerable<Comments> Comments { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器

    public ActionResult ProductDetails(int? id)
    {
        DetailsViewModel detailsViewModel = new DetailsViewModel();
        detailsViewModel.Product = db.Product.Find(id);//this is working
        detailsViewModel.Comments = db.Comments.Where(c => c.Id_Product == id).OrderBy(x => x.DateComment).ToList();
        return View(detailsViewModel);
    }
Run Code Online (Sandbox Code Playgroud)

看法

@model Database.Models.DetailsViewModel
<ul>
@Html.DisplayFor(x => x.Comments.DateComment) //getting error here 'IEnumerable<Comments>'
@Html.DisplayFor(x => x.Comments.Comment)     // does not containt definiton for 'Comment'
<ul>
Run Code Online (Sandbox Code Playgroud)

我想要得到这样的东西:

  • 2019-06-25: 富
  • 2019-06-25: FooFoo
  • html c# asp.net-mvc ienumerable razor

    -2
    推荐指数
    1
    解决办法
    4199
    查看次数

    如何通过MVC4 Razor View中的actionlinks创建菜单?

    如何使用ActionLikns在MVC4 Razor View中创建菜单?

    我是MVC的初学者所以请举个例子?

    提前致谢

    Ankur Tripathi

    razor asp.net-mvc-4

    -3
    推荐指数
    1
    解决办法
    6424
    查看次数

    如何让我们的网页设计师在没有服务器端语言的情况下编写复杂的Web应用程序

    在我的网站开发公司,我们有许多设计师,他们具有以下开发知识和经验:

    • 客户端Web语言(HTML,CSS,JavaScript)
    • 基本数据库设计(如何创建表,关系等),以及
    • 基本SQL

    问题是那些人知道服务器端语言,比如C#.我们希望为他们提供使用他们当前知识创建Web应用程序的选项.

    基本上,他们应该能够创建数据网格,添加/编辑表单等,而无需使用完整的服务器端语言,如C#或PHP.

    我们不想在这里创造新的巨大新技术.我们想要一个简单的解决方案,这个解决方案易于理解和维护,并且可能有些开源.

    我们考虑过为ASP.NET Razor添加一个扩展,看起来像这样:

    @DB(table="pages", where="id > 15")
    
    <ul>
    @while (row.Next()) {
        <li><a href="@row.URL">@row.Name</a></li>
    }
    </ul>
    
    Run Code Online (Sandbox Code Playgroud)

    在性能,设计模式,代码风格和安全性(SQL注入)方面,这是一个很好的解决方案吗?

    这有什么开源的吗?

    你还有其他建议吗?


    以下是使用此样式的简单应用程序的一些示例:

    /apps/pages/index.html

    @(DB.Select(table: "pages", 
                where: "id = ? and date > ?",
                params: new[] { Request.QueryString["ID"], Request.QueryString["Date"] }))
    
    <html>
    <body>
        <ul>
        @foreach (var row in Model) {
            <li><a href="@row.URL">@row.Name</a></li>
        }
        </ul>
    </body>
    </html>
    
    Run Code Online (Sandbox Code Playgroud)

    /apps/pages/create.html

    @(DB.InsertOnPost(table: "pages",
                      fields: "name, description, date",
                      values: "?, ?, Now",
                      params: new[] { Request.Form["Name"], Request.Form["Description"] }))
    
    @RedirectOnPost("/pages")
    
    <form action="/pages/create" method=”post”> …
    Run Code Online (Sandbox Code Playgroud)

    asp.net-mvc razor

    -4
    推荐指数
    1
    解决办法
    298
    查看次数

    Razor中的正则表达式:找不到类型或命名空间名称"匹配"

    我正在做一个Razor页面.以下是此cshtml文件的开头:

    @{
        var year = Request.QueryString["year"];
    
        Match match = Regex.Match(year, @"^\d\d\d\d$", RegexOptions.IgnoreCase);
    }
    
    Run Code Online (Sandbox Code Playgroud)

    加载页面时,我收到以下错误:

    编译错误

    描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.

    编译器错误消息:CS0246:找不到类型或命名空间名称"匹配"(您是否缺少using指令或程序集引用?)

    来源错误:

    我该如何解决这个错误?

    .net c# asp.net asp.net-mvc razor

    -4
    推荐指数
    1
    解决办法
    2751
    查看次数

    按钮中的Html.ActionLink

    我正在尝试使用按钮连接到控制器中的方法.我可以通过这个链接连接:

    @Html.ActionLink("Print", "Print", new { id = Model.SalesContractId})
    
    Run Code Online (Sandbox Code Playgroud)

    但我不想要一个链接,我希望我的对话框上的按钮能够做到这一点.我尝试过以下方法:

    $('#btnDialogPrint').click(function () {
            location.href = '<%= Url.Action("Print", "Print", new { id = Model.SalesContractId}) %>'; 
    
        });
    
    Run Code Online (Sandbox Code Playgroud)

    但它只是将我重定向到一个说错误请求的页面.

    namespace Contract.Controllers
    {
    
        public class ContractController : Controller
        {
    
            CompassEntities db = new CompassEntities();
    
            public ActionResult Print(int id)
            {
                return View(""); // This can be removed and Print code may be added
            }
    
    Run Code Online (Sandbox Code Playgroud)

    一旦我进入这个方法,我不会担心里面的代码.

    我可以在这附加一个链接吗?

    <input type="button" value="Print" id="btnDialogPrint" />
    
    Run Code Online (Sandbox Code Playgroud)

    我的视图Edit.cshtml

    @model Contract.Models.tbSalesContract
    <!DOCTYPE html>
    <html>
    <head>
        <title>Edit Contract</title>
    </head>
    <!-- Script section -->
    <script …
    Run Code Online (Sandbox Code Playgroud)

    c# asp.net-mvc jquery razor asp.net-mvc-3

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