Tag: asp.net mvc

使用Include with async await

我有一个EF查询,我通过它的唯一标识符返回一个’Item’。 我正在使用MVC提供的脚手架控制器,这可以正常工作,但现在我希望它返回属于该项目的标签列表。 我想我可以使用如下所示的’Include’来急切地获取标签。 但是,使用异步时似乎不允许这样做。 Item item = await db.Items.Include(“Tags”).FindAsync(id); 任何人都可以解释为什么这不起作用并建议另一种方法来恢复项目的标签? 干杯 本

EF Code First不为ICollection 生成表

我想在我的一个数据类中使用下面的ICollection属性(让我们称之为“Foo”) public class Foo { [Key] public int FooId { get; set; } public string SomeValueOrOther { get; set; } public virtual ICollection AllowedBars { get; set; } } 我可以在使用实体上下文时添加字符串值,但它们不会“去任何地方”。 换句话说,不会生成表来表示此关系,因此不会保存任何值。 我期望的是一个包含两列的表,一个用于“FooId”,一个用于“AllowedBar”,EF用于自动将其映射到集合(与复杂类型一样)。 由于没有发生这种情况,我必须使用上面描述的两个属性创建一个名为“FooAllowedBar”的类。 这让我很不高兴,因为它是我在整个项目中唯一的“join”类型。 当然,它可以工作,所以只勾选一个方框,但是有人知道如何让EF为字符串集关系生成一个表吗? (或int,或datetime等) 很可能,从EF上的那些小信息(仍然!)来看,这种function还没有得到支持。 我想接近一个确定的答案。 非常感谢,Rob

具有键“CategoryId”的ViewData项的类型为“System.Int32”,但必须是“IEnumerable ”类型的?

所以我的代码以前工作过。 我不知道我为此做了什么,我似乎无法修复它。 我见过有人说要重置ModelState。 (ModelState.Clear();)但这没有帮助。 另外,我对MVC还是一个新手并没有帮助。 任何帮助,将不胜感激。 谢谢。 控制器: public ActionResult Create() { ActiveDirectoryModel adm = new ActiveDirectoryModel(); ViewBag.notifyto = adm.FetchContacts(); var model = Populate(); return View(model); } [HttpPost] public ActionResult Create(CreateViewModel model) { if (ModelState.IsValid) { model.leaf.Date = DateTime.Now.Date; model.leaf.Category = model.CategoryId; model.leaf.SubCategory = model.SubCategoryId; model.leaf.AssignedTo = model.AssignedToId; model.leaf.CoAssignedTo = model.CoAssignedToId; model.leaf.Status = model.StatusId; model.leaf.Priority […]

在ASP.NET MVC中将多个参数传递给控制器​​; 另外,在LINQ-to-SQL中生成即时查询

我正在研究一个基本的问题管理系统,以便学习ASP.NET MVC。 我已经把它运行到相当不错的水平,但我遇到了一个问题。 我有一个名为Issue的控制器,其视图名为Open。 / Issue / Open列出当前系统上记录的所有未解决问题。 我已经定义了这样的路线: routes.MapRoute( “OpenSort”, // Route name “Issue/Open/{sort}”, // URL with parameters new { controller = “Issue”, action = “Open”, sort = “TimeLogged” } // Parameter defaults ); 到目前为止,这是正常工作,使用IssueController.cs中的以下代码: public ActionResult Open(string sort) { var Issues = from i in db.Issues where i.Status == “Open” orderby i.TimeLogged ascending […]

使用generics类型’System.Collections.Generic.List ‘需要1个类型参数

这是什么意思? 我在ASP.NET MVC中使用了一个列表列表,并通过ActionResuls ViewData发送它们以在视图中检索它。 但是,当我将其更改为列表列表时,它会给我一个HttpWebException错误。 当我在即时窗口内检查它时,它告诉我错误是: 使用generics类型’System.Collections.Generic.List ‘需要1个类型参数 那么,它是什么意思,我做错了什么呢?

Asp.net身份entity framework数据库第一种方法有自己的表定义

我有四张桌子 角色表 用户表 UserRole表 UserType表 默认的Asp.net标识有Asp.netusers,Asp.netRoles,Asp.netuserlogins,Asp.netuserclaims,Asp.netuserroles等表格。 我的表与相同的列名称和我的表中不可用的某些列不匹配。 我可以使用自己的表来利用asp.net身份的function,否则我需要按照Asp.netusers表中使用的相同列到我的用户表。 是否需要在我的表中添加所有列? 我已经使用相同的默认表实现了asp.net身份EF数据库第一种方法。 我有单独的角色存储和用户存储 这里的上下文用户,userroles与asp.net标识中的默认表相同(asp.netusers,asp.netroles) public partial class OVT_UserEntities : DbContext { public OVT_UserEntities() : base(“name=OVT_UserEntities”) { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet UserClaims { get; set; } public virtual DbSet UserLogins { get; set; } public virtual DbSet UserRoles […]

Html Agility Pack – 问题选择子节点

我想将我的Asics运行计划导出到iCal,由于Asics不提供这项服务,我决定为自己个人使用构建一个小刮刀。 我想要做的是从我的计划中获取所有计划的运行并基于此生成iCal源。 我正在使用C#和Html Agility Pack。 我想要做的是遍历我所有的预定运行(它们是div节点)。 然后我想用我的运行节点选择几个不同的节点。 我的代码如下所示: foreach (var run in doc.DocumentNode.SelectSingleNode(“//div[@id=’scheduleTable’]”).SelectNodes(“//div[@class=’pTdBox’]”)) { number++; string date = run.SelectSingleNode(“//div[@class=’date’]”).InnerText; string type = run.SelectSingleNode(“//span[@class=’menu’]”).InnerHtml; string distance = run.SelectSingleNode(“//span[@class=’distance’]”).InnerHtml; string description = run.SelectSingleNode(“//div[@class=’description’]”).InnerHtml; ViewData[“result”] += “Dato: ” + date + “”; ViewData[“result”] += “Tyep: ” + type + “”; ViewData[“result”] += “Distance: ” + distance + “”; […]

第一个html助手生成客户端validation属性,而第二个没有

假设我有这个模型: public class Person { public bool IsApproved { get; set; } } 并且这个代码,我试图用check类型呈现input : @Html.CheckBoxFor(x => x.IsApproved) @Html.CheckBox(“IsApproved”) 但是,结果是不同的: // CheckBoxFor result // CheckBox result 如何以及为什么 ,第一个生成客户端validation的属性,而另一个没有? 更新: 交换@Html.CheckBoxFor和@Html.CheckBox的顺序后,标记元素的顺序没有改变。

如何更改ASP.NET MVC中的int模型validation的ErrorMessage?

我有一个模型,其属性定义如下: [Required(ErrorMessage=”Please enter how many Stream Entries are displayed per page.”)] [Range(0,250, ErrorMessage=”Please enter a number between 0 and 250.”)] [Column] public int StreamEntriesPerPage { get; set; } 除非用户输入类似“100q”的内容,否则无效。 然后会显示一个相当丑陋的错误,上面写着“值’100q’对StreamEntriesPerPage无效。” 当输入不是int时,是否有可用于覆盖默认错误消息的属性?

实体与模型与视图模型

我只是花了一些时间阅读这些术语(我没有那么多使用它们,因为我们没有任何MVC应用程序,我通常只是说“模型”),但我觉得这些意味着不同的东西取决于上下文: 实体 这很简单,它是数据库中的一行: 2)关于数据库,实体是可以存储数据的单个人,地点或事物。 模型 我经常读到,这基本上是实体的组合以表示一整套数据,假设客户的地址列表模型将实体客户,地址和可能的个体组合在一起。 视图模型 MVVM或MVC模式中的一个术语,它是一个模型,它完全代表您可以在视图上看到的数据。 viewmodel位于应用程序层,具有validation属性,即ASP.NET MVC Model vs ViewModel 从我的视线来看,这些术语似乎有点多余:Viewmodel显然已经使用了它,否则视图将不得不做所有努力来展示正确的东西。 正如我们从EF中所知,实体只是表示,但如果你将这两者结合起来,那么模型的使用在哪里? 必须在ViewModel上完成validation,安全等操作。 当你有数百个小表在实体和viewmodel之间放置另一个抽象时,你会使用该模型吗? 或者在MVC和MVVM实体和模型方面通常是一样的吗? 像往常一样感谢周末愉快 马蒂亚斯