Tag: asp.net mvc 3

反序列化大型json对象时出现JsonMaxLengthexception

介绍: Web应用程序,ASP.NET MVC 3,一种控制器操作,它接受具有(可能)大字段的POCO模型类的实例。 型号类: public class View { [Required] [RegularExpression(…)] public object name { get; set; } public object details { get; set; } public object content { get; set; } // the problem field } 控制器动作: [ActionName(…)] [Authorize(…)] [HttpPost] public ActionResult CreateView(View view) { if (!ModelState.IsValid) { return /*some ActionResult here*/;} … //do […]

数据注释如何工作?

我在ASP.NET MVC 3项目中使用Data Annotations来validation模型。 这些非常方便,但目前它们对我来说都很神奇。 我读到数据注释不会抛出exception。 那么MVC如何知道将validation错误添加到模型状态字典中? 如果没有抛出exception,由于模型validation而在模型上设置属性的失败如何冒泡到MVC? 我总是假设每次属性失败时抛出exception,并且MVC模型绑定捕获exception并将其添加到模型状态字典中。 为了测试这个,我创建了一个控制台应用程序并添加了一个带有validation注释的示例类: public class MyObject { [StringLength(10, MinimumLength=3)] public string Name { get; set; } } 然后,我实例化了该对象,并尝试为Name属性分配小于3的值。尽管注释表明字符串长度小于3,但该属性分配得很好。 static void Main(string[] args) { MyObject mine = new MyObject(); mine.Name = “hi”; Console.WriteLine(mine.Name); Console.ReadLine(); } 这个小程序向控制台写出“hi”。 为什么? 当我试图将mine.Name设置为“hi”时,我期待它生气。 我错过了什么? 提前致谢。

EF – 在HTTP请求期间创建模型exception时,不能使用上下文

我收到“在创建模型时无法使用上下文。” 在我的一个网页中的Web应用程序中出现问题。 此特定网页每2-3秒POST一次,以刷新屏幕。 根据我的测试,我发现如果我有2个或更多的浏览器实例打开到这个页面,几分钟后我收到一个“创建模型时不能使用上下文”来自存储库深处的exception。 此代码调用“服务”来检索所需的数据。 此代码在MVC Controller类的自定义授权属性中执行。 // Code in custom “Authorization” attribute on the controller int? stationId = stationCookieValue; // Read value from cookie RoomStationModel roomStationModel = RoomStationService.GetRoomStation(stationId); // Error occurs inside this call 这是“RoomStationModel” public class RoomStationModel { [Key] public int RoomStationId { get; set; } public int? RoomId { get; set; } […]

在哪里可以找到安装了MVC 3的系统中的System.Web.MVC dll?

我想知道在哪里可以找到系统中的System.Web.MVC dll,其中已经安装了MVC 3。 我想在基于X64的系统上使用它。 知道如何获得它们吗?

这个基本控制器ASP.NET MVC 3中的自定义主体是非常低效的吗?

尽管我已经在这里待了一段时间,但这是我第一个关于SO的问题,所以请温柔地对待我。 我正在使用ASP.NET MVC 3 ,我想创建一个自定义Principal这样我就可以存储有关当前用户的更多信息而不是标准,因此不必经常访问数据库。 这是我追求的相当标准的东西。 我们先说一下电子邮件地址和用户ID。 我决定将对象存储在缓存中,因为我知道不建议将它存储在会话中。 我也不想继续强制转换User对象,所以我想覆盖控制器中的User对象。 所以我可以去User.UserId并保证一些东西。 所以我创建了一个这样的自定义主体: public class MyPrincipal : IPrincipal { public MyPrincipal(IIdentity ident, List roles, string email, Guid userId) { this._identity = ident; this._roles = roles; this._email = email; this._userId = userId; } IIdentity _identity; public IIdentity Identity { get { return _identity; } } private List _roles; […]

与Model和ViewModel混淆

我正在学习ASP.NET MVC并下载了几个示例应用程序。 MusicStore等…… 我来自wpf背景,我们有MVVM模式。 我注意到他们使用了模型和ViewModel的概念。 在MVVM中很明显,您将视图绑定到ViewModel,将模型注入viewModel。 在MVC中你有一个控制器,但我不确定和混淆所有联系在一起,因为我看不到模型注入ViewModel 我有以下结构 MyCompany.Entities.dll(所有型号都在这里)EG产品 MyCompany.Dal.dll(所有存储库都在这里) MyCompany.Services.dll(由MyCompany.WebUI.Controller调用,调用MyCompany.Dal) MyCompany.WebUI.MyApp MyCompany.Tests 从我看到的一些示例中,您的模型充当ViewModel.Am我是否正确? 让我们拿一个控制器,我有类似的东西 public class ProductController { public ProductController(IProductRepository productRepository) { //omitted as not relevant } } public class ProductVM { public ProductVM() { // Shouldn’t we inject the model here RG Product } } 我可以参考一些N层示例吗? ViewModel的概念在MVC中是否有效? 标准是什么? 谢谢你的任何建议。

在Html.DropDownlistFor中获取多个选定值

@Html.DropDownListFor(m => m.branch, CommonMethod.getBranch(“”,Model.branch), “–Select–“, new { @multiple = “multiple” }) @Html.DropDownListFor(m => m.division, CommonMethod.getDivision(Model.branch,Model.division), “–Select–“, new { @multiple = “multiple” }) 我有两个DropDownListFor实例。 我想将之前存储为Model.branch和Model.division的值设置为true。 这些是存储的id的字符串数组 class CommonMethod { public static List getDivision(string [] branchid , string [] selected) { DBEntities db = new DBEntities(); List division = new List(); foreach (var b in branchid) { […]

循环查看视图中的模型属性

我有一个痛苦的简单视图模型 public class TellAFriendViewModel { public string Email1 { get; set; } public string Email2 { get; set; } public string Email3 { get; set; } public string Email4 { get; set; } public string Email5 { get; set; } } 然后我的视图上的相应输入,但我想知道是否有更好的方法(如循环)将类似的TextBoxs写入我的视图: @using (Html.BeginForm()){ @Html.AntiForgeryToken() @Html.TextBoxFor(vm => vm.Email1) @Html.TextBoxFor(vm => vm.Email2) @Html.TextBoxFor(vm => vm.Email3) @Html.TextBoxFor(vm […]

在entity framework中设置默认值 – Database First

我正在使用Entity Framework 4.3.1,其中包含数据库中自动生成的实体。 从这里,有没有办法将默认值设置为某种东西? 我不想把它放在自动生成的代码中,因为它会被覆盖。 我知道可以使用部分类,所以我尝试了类似的东西,其中生成了实体,而DESCRIPTION_是我想要设置为默认值的属性。 namespace name.Models { public partial class ENTITY { public string DESCRIPTION_ { set { _DESCRIPTION_ = “default string”; } } } } 也许如果有人能给我一个很棒的例子!

使用entity framework进行向下转型

我有一个项目,我在EF中将Employer定义为User的派生类。 在我的过程中,我创建一个用户,而不知道它最终是否会成为雇主(或其他类型的用户),之后我需要转换它。 起初我尝试过(Intellisense表示存在显式转换): Employer e = (Employer) GetUser(); 但在运行时我得到了: Unable to cast object of type ‘System.Data.Entity.DynamicProxies.User_7B…0D’ to type ‘Employer’. 所以我试着写一个转换器: public partial class User { public static explicit operator Employer(User u) { 但我得到错误: Error 21 ‘User.explicit operator Employer(User)’: user-defined conversions to or from a derived class are not allowed C:\Users\..\Documents\Visual Studio 2010\Projects\..\Website\Models\EF.Custom.cs 精细。 然后我重载了Employer的构造函数,如下所示: public […]