Tag: asp.net mvc

日期时间的Razor DisplayFor =输入字符串的格式不正确

最近我更新了我的MVC 4应用程序的几个引用程序集,并升级到MVC 5.1。 不确定这是否与它有关。 模型 [Display(Name = “Start”)] [DisplayFormat(DataFormatString = “{0t}”)] public System.DateTime StartDateTime { get; set; } 现在我在一个简单的razor html助手上遇到了一个奇怪的错误 @Html.DisplayFor(model => model.StartDateTime) 给出错误: Input string was not in a correct format 。 如果你在调试器中查看该字段的值,它的类型为System.DateTime并显示: 2/28/2014 10:17 AM 更改为@Html.EditorFor可正确呈现数据时间。 我的DisplayTemplates文件夹为空。 堆: [FormatException: Input string was not in a correct format.] System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) […]

如何处理许多可能的值来进行查询?

我正在构建一个MVC应用程序,用户可以使用大量filter来获得他想要的内容。 以下是基于控制器方法的filter概述: // // GET: /Card/SearchIndex public ActionResult SearchIndex(string objName, string objType, string objCostSymbol, string objCost, string powerSymbol, string powerValue, string ratingSymbol, string ratingValue, string ownerName, string objSet, string objRarity, string addCostValue, int? objNumber, string addCostValue2, string addCostValue3, string addCostValue4, string addCostValue5, string addCostValue6, bool? blueColor, bool? redColor, bool? yellowColor, bool? purpleColor, bool? greyColor, bool? […]

如何正确实现其他实体对Identity用户的引用?

我正在使用具有自己上下文的Identity。 public class ApplicationUser : IdentityUser { // some custom fields } public class IdentityContext : IdentityDbContext { //… } 我也有一些像这样的其他实体 public class Comment{ public int Id {get;set;} public string Message{get;set;} public DateTime Time{get;set;} } 这是我的其他背景使用的 public class MyContext :DbContext { public DbSet Comments { get; set; } //… other DbSets } 题。 我希望我的评论实体有作者属性,所以我会有类似的东西 public […]

自定义DataAnnotationsModelMetadataProvider无法正常工作

我有许多属性需要一个或多个validation属性,如下所示: public class TestModel { [Some] [StringLength(6)] [CustomRequired] // more attributes… public string Truck { get; set; } } 请注意以上所有注释都有效。 我不想一直写这个,因为每当应用Some时,所有其他属性也会应用于属性。 我希望能够做到这一点: public class TestModel { [Some] public string Truck { get; set; } } 现在这可以通过inheritance来实现; 因此,我编写了一个自定义DataAnnotationsModelMetadataProvider并覆盖了CreateMetadata 。 这会查找使用Some修饰的任何内容,然后为其添加更多属性: public class TruckNumberMetadataProvider : DataAnnotationsModelMetadataProvider { protected override ModelMetadata CreateMetadata(IEnumerable attributes, Type containerType, Func modelAccessor, Type […]

我如何创建UserManager的实例

我正在尝试学习新的asp.net身份2.0如何工作,但是几乎没有文档,我遇到了很多绊脚石。 我在下面的代码基于我读过的几个教程: public class CustomRole : IdentityRole { public CustomRole() { } public CustomRole(string name) { Name = name; } } public class CustomUserRole : IdentityUserRole { } public class CustomUserClaim : IdentityUserClaim { } public class CustomUserLogin : IdentityUserLogin { } // define the application user public class ApplicationUser : IdentityUser { [Required] public […]

如何在MVC 4中为枚举创建默认编辑器模板?

我们知道,如果我们为基类型定义模板,那么该模板也可以用于派生类型(如果没有使用任何其他模板来覆盖它)。 由于我们无法inheritanceEnum ,因此Enum也不会被认为是从Enuminheritance的,因此Views\Shared\EditorTemplates的Enum.cshtml模板都不Enum.cshtml对象的不同自定义枚举属性有效,如下所示: public enum Role { Admin, User, Guest } 我已经在ASP中看到了关于这个主题的一些答案,但是我想知道在MVC 4中是否对这个主题有一些改进? PS。 我的意思是不使用任何明确的模板属性(如@Html.EditorFor(model => model.Role, “Enum”)或[UIHint(“Enum”)] ) PPS。 我是MVC的新手,所以我很感激你的简单答案。

获取一个完整的url,例如http://google.com作为操作输入

我希望在我的操作中获取url以返回页面的PageRank。 我有这样的路线: routes.MapRoute( name: “PRURL”, url: “Utility/PR/{*url}”, defaults: new { controller = “Utility”, action = “PR”, url = UrlParameter.Optional } ); 但每当我去http://localhost:1619/Utility/PR/http://google.com我只是得到一个System.Web.HttpException告诉我A potentially dangerous Request.Path value was detected from the client (:). 我想解决这个问题,但我不知道怎么做! 有谁能够帮我? 更新 我试过[ValidateInput(false)]但它没有解决问题! 行动是这样的: [ValidateInput(false)] public string PR(string url) { return GooglePageRank.PRChecker.PR(url); } 通过添加Update2 问题没解决! 🙁 最后错误已解决,但url从http://google.com更改为http:/google.com ,我在这里要求它,我得到了答案。

尝试为文件附加自动命名的数据库失败。 存在具有相同名称的数据库

我在项目的App_Data文件夹中有ASPNETDB.MDF数据库。 我尝试添加用户时收到错误: MembershipUser user = Membership.CreateUser(viewModel.Username, viewModel.Password, viewModel.Contact.Email, viewModel.SecurityQuestion, viewModel.SecurityAnswer, true, out createStatus); 错误是: 尝试为文件C:\ Users \ Steven \ documents \ visual studio 2010 \ Projects \ MyApp \ MyApp.WebUI \ App_Data \ ASPNETDB.MDF附加自动命名的数据库失败。 存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。 我的web.config有这个连接字符串和成员资格信息: 我有一种感觉,我的连接字符串是错误的,但我真的不知道。

在Mvc.Controller中使用Server

我有自己inheritance的来自Mvc.Controller ,然后我的所有控制器都inheritance自。 我使用接口编写了一个提供程序,并将其实现为MyService ,构造函数使用了HttpServerUtilityBase的Mvc.Controller的Server属性。 但是,我在App.Controller的构造函数中实例化了MyService 。 问题是在构造MyService时Controller的Server属性为null 。 我使用了public Controller () : base() { }来获取要构造的基础。 但是, Server仍为null 。 我想尽可能避免使用Web.HttpContext.Current.Server 。 有没有人解决这个问题? 编辑:嗯,我已经实现了tvanfosson的建议,当我的app在属性get方法中构造MyService时, Server仍为null。 编辑2:没关系,我是个傻瓜。 我有另一个使用Server Controller ,并没有改变它。 案件结案。

具有多个前导零小数的属性路由

当前的ActionResult: [Route(“EvaluatorSetup/{evalYear}/{department}”)] public ActionResult RoutedEvaluatorSetup(int evalYear, string department) { return EvaluatorSetup((int?)evalYear, department); } 我想用url: /EvaluatorSetup/2014/001.3244 但是,{department}最终是一个字符串,路由不会将{department}作为字符串。 答:我不知道MVC对“001.3244”的期望是什么类型,或者它正在捡起它的类型。 B.我想将它维护为带有可选前导零的字符串,如示例中所示。 我究竟做错了什么? 更新: 我的意思是,当我在返回线上的代码中断时,它永远不会触发。 /EvaluatorSetup/2014/foobar (WORKS!) /EvaluatorSetup/2014/001.3244 (DOESN’T WORK!) 这让我相信我的路由不正确: [Route(“EvaluatorSetup/{evalYear}/{department}”)] 具体来说,似乎001.3244不是有效的字符串。 所以我的问题是如何纠正这个问题: [Route(“EvaluatorSetup/{evalYear}/{department}”)] public ActionResult RoutedEvaluatorSetup(int evalYear, string department) 所以我可以进入一个uri: /EvaluatorSetup/2014/001.3244 优选地,保持前导零的位置。 我想过这样的事情: [Route(“EvaluatorSetup/{evalYear}/{corporation}.{department}”)] 然而,这是猜测。 我甚至不知道这是否有效。 其他更新: RouteConfig.cs中的旧路由(似乎不再起作用)是这样的: routes.MapRoute( “evaluations_evaluatorsetupget”, “evaluations/evaluatorsetup/{evalyear}/{department}”, new { controller = “evaluations”, action […]