Tag: asp.net mvc 4

使用ModelBinder属性与ModelBinders.Add()

有人能告诉我使用[ModelBinder()]属性与通过global.asax中的ModelBinders.Add()注册模型绑定器的ModelBinders.Add()吗? 我能想到的一个优点是它更明确,而在全局ModelBinders注册对于检查动作方法的人并不那么明显。 我能想到的一个权衡是它不可重复使用,因为您必须将此属性添加到需要使用此模型绑定器的所有操作方法,而在全局ModelBinders注册将使其可用于接收该模型的所有操作方法。 这是唯一的区别吗? 换句话说,会说明这是正确的: 如果您只在一个动作方法中使用该模型(可能是两个,获取+发布),则使用[ModelBinder()] 。 如果在多个操作方法中使用该模型,请在全局ModelBinders注册它。

ASP.NET MVC中的数据库上下文和返回动态结果集

在MVC 4和EF 5中,我想运行动态查询。 var returndata = Context.Database.SqlQuery(Type, strsql, null); 我不知道,它会返回多少个字段并命名。 在这个结果中,我想制作将在视图上显示的表结构。 问题:我应该把什么作为类型传递? 我的查询返回以下结果: 领域1,领域2,领域3,领域4,领域5 ROW1 … 行2 .. 感谢任何建议。

运行时错误:无法加载文件或程序集’System.Web.WebPages.Razor,Version = 3.0.0.0

我通过NuGet修改了我的ASP.NET MVC4包,现在不会加载System.Web.WebPages.Razor v3 。 有时其他包也不会加载。 我的同事运行解决方案没有任何麻烦,所以问题肯定是我的开发系统上的配置(而不是任何已经检查过的)。 我已经尝试了各种SOF和其他论坛的建议,包括: 无法加载文件或程序集’System.Web.WebPages.Razor,Version = 2.0.0.0, 无法加载文件或程序集’System.Web.WebPages.Razor,Version = 2.0.0.0 无法加载文件或程序集’System.Web.WebPages.Razor,Version = 3.0.0.0 以及从那里链接的建议。 我还检查了控制面板,发现没有安装程序引用MVC。 (如果重要的话,我正在运行MS Win 7 SP 1.) 我愿意接受任何建议。 这是我的核心转储信息: ‘/’应用程序中的服务器错误。 无法加载文件或程序集’System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 该系统找不到指定的文件。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.IO.FileNotFoundException:无法加载文件或程序集’System.Web.WebPages.Razor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 该系统找不到指定的文件。 Source Error: An unhandled exception was generated during the execution of […]

ASP.NET MVC 4脚本捆绑在部署时导致错误

当@Scripts.Render()没有捆绑脚本时,我的网站在localhost上工作正常但是当我部署到我的服务器时,捆绑的Javascript必须包含错误,因为我页面上的所有Javascript都停止工作。 这是我的包代码: public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle(“~/bundles/jquery”).Include( “~/Scripts/jquery-{version}.js”, “~/Scripts/jquery-migrate-{version}.js”)); bundles.Add(new ScriptBundle(“~/bundles/jqueryval”).Include( “~/Scripts/jquery.unobtrusive*”, “~/Scripts/jquery.validate*”)); bundles.Add(new ScriptBundle(“~/bundles/jqueryui”).Include( “~/Scripts/jquery-ui-{version}.js”, “~/Scripts/jquery-ui.unobtrusive-{version}.js”)); bundles.Add(new ScriptBundle(“~/bundles/modernizr”).Include( “~/Scripts/modernizr-*”)); bundles.Add(new StyleBundle(“~/Content/css”).Include(“~/Content/site.css”)); bundles.Add(new StyleBundle(“~/Content/themes/base/css”).Include( “~/Content/themes/base/jquery.ui.core.css”, “~/Content/themes/base/jquery.ui.resizable.css”, “~/Content/themes/base/jquery.ui.selectable.css”, “~/Content/themes/base/jquery.ui.accordion.css”, “~/Content/themes/base/jquery.ui.autocomplete.css”, “~/Content/themes/base/jquery.ui.button.css”, “~/Content/themes/base/jquery.ui.dialog.css”, “~/Content/themes/base/jquery.ui.slider.css”, “~/Content/themes/base/jquery.ui.tabs.css”, “~/Content/themes/base/jquery.ui.datepicker.css”, “~/Content/themes/base/jquery.ui.progressbar.css”, “~/Content/themes/base/jquery.ui.theme.css”)); } 这是我的渲染代码: @Styles.Render(“~/Content/css”) @Styles.Render(“~/Content/themes/base/css”) @Scripts.Render(“~/bundles/jquery”) @Scripts.Render(“~/bundles/jqueryval”) @Scripts.Render(“~/bundles/jqueryui”) @Scripts.Render(“~/bundles/modernizr”) 有人可以解释部署时我的Javascript可能会发生什么吗? 谢谢,Alex。

授权角色WebAPI oauth owin

我在ASP.NET Web API上使用OWIN中间件实现了令牌授权系统。 我成功地可以使用REST客户端进行身份validation并获取授权令牌来调用API。 如果我将[Authorize]属性放在我的控制器中的GET操作上,它也可以正常工作。 如果我没有有效的令牌,它会拒绝带有401消息的资源,但是如果我将[Authorize(Roles=”admins”)]与roles参数一起使用,则它无法识别用户的角色。 我validation了数据库中的内容,并检查了用户usersinroles是否正确填充。 这是一段代码: [Authorize(Roles = “admins”)] public IEnumerable Get() { ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal; bool isrole = principal.IsInRole(“admins”); 我还检查了没有roles参数的动作,并且isrole boolean总是为false 。 我必须启用某些function吗?

无法使用数据注释在MVC 4中设置日期时间格式

我会尝试一切但不工作这个( dd / MM / yyyy )日期格式,这总是门mm / dd / yyyy [Display(Name = “Release Date”)] [DataType(DataType.DateTime)] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = “{0:dd/MM/yyyy}”)] public Nullable release_date { get; set; } 剃刀视图 @Html.EditorFor(model => model.release_date) 使用DateTime模板。 @model Nullable @if (Model.HasValue) { @Html.TextBox(“”, String.Format(“{0:dd/MM/yyyy}”, Model.Value)) } else { @Html.TextBox(“”, String.Format(“{0:dd/MM/yyyy}”, DateTime.Now)) } @{ string name = ViewData.TemplateInfo.HtmlFieldPrefix; string […]

如何在ASP.Net MVC控制器中正确使用ServiceStack身份validation

我在使用ServiceStack [Authentication]属性在ASP.Net MVC4控制器中工作时遇到问题,即使在正确提交登录详细信息之后,具有该属性的页面/操作方法也会将用户重定向到登录页面。 我遵循了SocialBootstrapApi示例,不同之处在于所有身份validationWeb服务调用都是从控制器进行的: this.CreateRestClient().Post(“/register”, model); 到目前为止我做过的其他事情: 使用我自己的用户会话实现子类化AuthUserSession(与示例没有太大区别,但使用我自己的User表实现) 在我的BaseController上inheritanceServiceStackController,覆盖默认登录URL 使用我的用户会话实现在AppHost中启用Authfunction 注册确实有效,用户身份validation逻辑工作(即使会话不存在),我可以在请求中看到ss-id和ss-pid cookie。 所以我的完整问题清单: 如何使[Authenticate]属性起作用(或者,我做错了什么)? 如何在MVC控制器中保存和重用用户会话? 目前this.UserSession始终为null。 如何注销用户? this.CreateRestClient().Get(“/auth/logout”); 似乎没有用。 更新1: 在我提交任何凭据之前,当我尝试加载安全页面(具有[Authenticate]属性的页面)时,会创建会话cookie( ss-id和ss-pid )。 这是预期的行为吗? 更新2: 我可以看到会话保存在MemoryCacheClient ,但尝试通过this.Cache.Get(SessionKey)在基本控制器中检索它返回null(其中SessionKey如下: urn:iauthsession:1 )

如何在Entity Framework代码优先方法中映射自我的递归关系

我想要创建的只是基本的递归类别。 如果RootCategory_Id设置为null,则类别为root,如果将其设置为某个id,则属于某个其他类别。 我在Seed()方法中添加了两个子类别的类别进行测试,但它不起作用。 (之后我检查了数据库,插入了) 分类模型 public class Category { public int ID { get; set; } public Category RootCategory { get; set; } // This one works good, it also creates “RootCategory_Id” in database on “update-database” public ICollection ChildCategories { get; set; } // This is always null, how to map it correctly? public string […]

有没有办法改变.net mvc bin目录位置?

我有一个相当标准和简单的MVC4网站。 在root目录中,我们有:bin,content,scripts,views。 使用项目的DLL的默认设置,我们称之为“web.dll”,所有必要的额外内容都在bin目录中。 不知何故,ASP.NET dev服务器和IIS7.5都知道在托管站点时在bin文件夹中查找“web.dll”,如果它不存在则会抛出错误:“无法加载类型’CVD.Web.MvcApplication “”。 该错误的标准解决方案是直接构建到bin文件夹,这对我不起作用,因为…… 出于调试目的,我希望能够将Debug和Release配置分别构建到bin / Debug和bin / Release中,然后部署两个dirs,然后在IIS,web.config,global.asax或者更改设置。在其他地方选择是否应该由服务器加载和执行Debug或Release版本。 我无法找到是否可能或者.net webapps有一个愚蠢的硬编码规则,说所有代码都必须存在于bin目录中。

安装MySQL Connector .NET后ASP.Net MVC4配置错误

我正在创建一个MVC4 Web应用程序项目。当我使用空项目并只是在浏览器上运行它工作正常。但问题是当我正在尝试创建一个Internet应用程序项目而不是Empty project.Once我创建互联网应用程序项目,当试图在浏览器上运行它时,它显示以下配置错误。据我了解它是与MySQL连接器程序集引用相关的东西。以下是错误。 Server Error in ‘/’ Application. Configuration Error Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. Parser Error Message: Could not load file or assembly ‘MySql.Web.v20, Version=6.9.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d’ or one of […]