我认为标题不言自明,我知道我可以使用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
在视图顶部添加,但它仍然不起作用,我得到相同的异常.
我正在为产品做评论部分,并且在显示评论视图时遇到一些问题。我用 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)
我想要得到这样的东西:
如何使用ActionLikns在MVC4 Razor View中创建菜单?
我是MVC的初学者所以请举个例子?
提前致谢
Ankur Tripathi
在我的网站开发公司,我们有许多设计师,他们具有以下开发知识和经验:
问题是那些人不知道服务器端语言,比如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) 我正在做一个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指令或程序集引用?)
来源错误:
我该如何解决这个错误?
我正在尝试使用按钮连接到控制器中的方法.我可以通过这个链接连接:
@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)