Articles of asp.net mvc 3

如何获取模型属性的id以与MVC3中的自定义IClientValidatable一起使用

我正在尝试编写一个自定义validation属性,该属性将有条件地要求基于模型的布尔属性的字段。 我有我的属性实现IClientValidatable。 我有要检查的属性的名称,但我不知道如何获取目标属性的客户端ID。 public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { var clientTarget = ?????; var rule = new ModelClientValidationRule() { ErrorMessage = FormatErrorMessage(metadata.DisplayName ?? metadata.PropertyName), ValidationType = “requiredif” }; rule.ValidationParameters[“target”] = clientTarget; yield return rule; } javascript: $.validator.addMethod(“requiredif”, function (value, element, target) { //check on value of target }); $.validator.unobtrusive.adapters.addSingleVal(“requiredif”, “target”); 如何获取目标属性的客户端ID,以便客户端javascript可以检查值?

MVC 3路由和操作链接不遵循预期的上下文路由

我正在尝试做一个自定义路由,所以我可以在我的应用程序中使用选定的字符串作为前缀,并根据它进行一些处理。 我遇到的问题是,生成的操作链接不是基于它所存在的URL进行上下文化的。 路线: routes.MapRoute( “TestRoute”, “TEST/{controller}/{action}/{id}”, new { controller = “Space”, action = “Index”, id = UrlParameter.Optional }); routes.MapRoute( “Default”, “{controller}/{action}/{id}”, new { controller = “Space”, action = “Index”, id = UrlParameter.Optional }); 导航到TEST / Space / Index工作,以及Space / Index,但我需要修复的奇怪问题是,通过ActionLink生成的链接不服从它们被加载的上下文,至少对于{controller} / { action} / {id}默认路由。 在TEST / Space / Index列表下加载的页面链接正确,但是当加载/ Space / Index时,它们都引用了调用URL所没有的TEST /路由。 这是默认行为吗? […]

如果cookie存在,即使它是在另一个应用程序中创建的,如何检查? (使用JS或C#)

我有几个应用程序,其中一个是管理身份validation的中央应用程序,其中LogOn页面作为IFrame导入到其他应用程序。 当userName和password正确时,我创建一个名为userInfo的cookie。 现在,在当前的应用程序中,我想检查userInfo的cookie是否存在。 我想我应该检查它是否存在于浏览器中(在客户端)。 它必须是可能的,所以我该怎么办呢? 提前致谢。

MVC3比较属性和嵌套对象属性

我有以下内容: public class Address { public string Email { get; set; } } public class CheckoutViewModel { public Address Address { get; set; } [Compare(“Address.Email”, ErrorMessage = “The email addresses you entered do not match”)] public string ConfirmEmailAddress { get; set; } } 使用客户端JS,这可以正确地处理和validation。 但是,在没有启用Javascript的情况下进行测试时,表单会回发,但ModelState错误会显示: 找不到名为Address.Email的属性。 有关为什么在客户端而不是服务器上工作的任何想法? 这种情况下的解决方案是什么? 非常感谢。

MVC3中的POCO类和ViewModel

我不是一个经验丰富的MVC3开发人员,但我想成为。 我熟悉POCO类和ViewModels,因为前者描述了数据库的每个类,后者用于mvc3中的强类型视图。 对于经验丰富的开发人员来说,我的问题并不复杂,但我对此感到有些困惑。 问题是,我有一个包含三个项目的解决方案; 我在其中编写了POCO类的Model类库。 这是一个例子: 。 public class Service { [Key] [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)] public int ServiceID { get; set; } //————————————————————// [Required, MaxLength(30)] [LocalizedAttribute(“Name”)] public string Name { get; set; } //————————————————————// [MaxLength(100)] [LocalizedAttribute(“Description”)] public string Description { get; set; } //————————————————————// [Required] public long ModifiedByUserID { get; set; } [ForeignKey(“ModifiedByUserID”)] public virtual User OperatorUser […]

在C#中解析动态SQL并在ASP.Net MVC中绑定到WebGrid

在C#中解析动态SQL并在ASP.Net MVC中绑定到WebGrid我有动态SQL查询,它使用pivot来生成结果,结果集可能是这样的: Name Div1 Div2 Div3 Div4 Div5 Active 1 0 0 0 0 Busy 0 0 0 0 1 NA 0 1 0 0 0 Suspended 0 0 0 1 0 可以有n个分区。 我想将此数据与ASP.NET MVC WebGrid控件绑定。 我无法做到这一点。 我的C#代码如下: dynamic list = db.ExecuteStoreQuery(“exec [dbo].[proc_GetData]”).ToList(); return list; 我想将此列表与ASP.NET MVC Webgrid绑定,我的webgrid代码如下: WebGrid grid = new WebGrid(Model.DataList); List list […]

如何在mvc3中使用razor语法测试视图?

我正在编写代码来测试C#MVC3应用程序。 我可以测试控制器但是如何测试视图中的代码? 这包括javascript和剃刀风格的代码。 有没有可用的工具可以在C#中模拟视图或测试视图和javascript?

在asp.net mvc 3中登录的unit testing

我使用现有的AccountController(由MVC制作)测试登录方法时遇到问题… 我有这个简单的测试方法: [TestMethod] public void LogOnTest1() { AccountController controller = new AccountController(); LogOnModel logonModel = new LogOnModel(); logonModel.UserName = “test”; logonModel.Password = “test1234”; if ( controller.MembershipService == null ) { controller.MembershipService = new AccountMembershipService(); } if ( controller.FormsService == null ) { controller.FormsService = new FormsAuthenticationService(); } var result = controller.LogOn( logonModel, “” ) as […]

在GET / POST上为ViewModel填充SelectList的最佳方法

我有以下ViewModel: public class EditViewModel { public int FooType { get; set; } public IEnumerable FooTypes { get; set; } } 我最初在我的编辑操作中填充它,如下所示: public ActionResult Edit(int id) { EditViewModel model = new EditViewModel(); model.FooTypes = new SelectList(repository.GetFooTypes(), “Id”, “Value”); return View(model); } 当我创建POST的操作时,我必须重复相同的代码: public ActionResult Edit(int id, EditViewModel model) { if( !ModelState.IsValid ) { model.FooTypes = new […]

潜在的危险请求,隐藏错误

我试图检查我的MVC应用程序的安全性。 当我尝试输入html或javascript时,它会出错:潜在的危险请求。 Server Error in ‘/’ Application. A potentially dangerous Request.Form value was detected from the client (TEKST=”joo</ht…"). Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting […]