Tag: asp.net mvc

获取控制器中强类型模型的“密钥”

所以我试图在控制器中获取模型对象的密钥,以便我可以向其添加AddModelError 。 在我看来我用 @Html.ValidationMessageFor(model => model.Email) 什么是等效的代码来获取要在控制器中添加的Key名称,以便它附加到此ValidationMessage。

ASP.NET MVCunit testing自定义AuthorizeAttribute

我正在研究ASP.NET MVC 4项目(.NET框架4),我想知道如何正确地unit testing自定义AuthorizeAttribute(我使用NUnit和Moq)。 我AuthorizeCore(HttpContextBase httpContext)了2个方法: AuthorizeCore(HttpContextBase httpContext)和HandleUnauthorizedRequest(AuthorizationContext filterContext) 。 正如您所看到的,这些方法分别需要HttpContextBase和AuthorizationContext ,但我不知道如何模拟它们。 这是我得到的: [Test] public void HandleUnauthorizedRequest_UnexistingMaster_RedirectsToCommonNoMaster() { // Arrange var httpContext = new Mock(); var winIdentity = new Mock(); winIdentity.Setup(i => i.IsAuthenticated).Returns(() => true); winIdentity.Setup(i => i.Name).Returns(() => “WHEEEE”); httpContext.SetupGet(c => c.User).Returns(() => new ImdPrincipal(winIdentity.Object)); // This is my implementation of IIdentity var requestBase […]

我尝试这样做时出现模板错误?

我正在使用asp.net mvc 3并且我一直收到此错误,因为我没有使用模板,所以我不理解它。 我在局部视野中有这个 @model ViewModels.FormViewModel @Html.TextBoxFor(x => x.Due.ToShortDateString()) 在我的viewmodel中 public class FormViewModel { public DateTime Due { get; set; } public FormViewModel() { DueDate = DateTime.UtcNow; } } 我收到这个错误 模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.InvalidOperationException:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

ASP.Net MVC:是否可以覆盖AuthorizeAttribute?

我当前的项目是使用ASP.Net MVC构建的内部Web应用程序,我正在添加身份validation。 我有一个预先构建的HTTPModule,它创建一个具有适当角色的IPrincipal。 如果用户未经过身份validation,我会获得一个角色为“Public”的用户对象 由于这是一个内部应用程序,因此大多数页面都是私有的,只能查看角色“Admin”。 因为我有一个基本控制器,我可以这样做: [Authorize(Roles=”Admin”)] public abstract class MyControllerBase : Controller { … } 我有一个问题,因为有些动作可以在公共网站上查看,如果我将它们归类为: [Authorize(Roles=”Public”)] public class LoginController : MyController { public ActionResult Index() { } } 由于未对用户进行身份validation,因此无法加载页面。 看起来“inheritance的类会忽略公共”的作用。是否有人知道角色是否可以被inheritance的类重写? 我也试图避免使用Roles =“Admin”归因于所有控制器 谢谢,基思。

如何在我的JSON模型类中使用保留关键字作为标识符?

我之前从未使用过Web API,但我需要一个接受/返回JSON对象的Web服务,并且使用它似乎是一个合理的事情。 它看起来很简单(如果不是为了我的目的有点过分),但我需要处理的数据结构看起来像: { “values”:[“foo”, “bar”], “default”:”bar” } 所以我去制作一个Model对象: class DropDownValues { public string[] values { get; set; } public string default { get; set; } } 问题是默认似乎是受保护的关键字。 必须有一些方法来解决这个问题,对吧?

ASP.NET Web API部分响应Json序列化

我正在实现支持部分响应的Web API。 /api/users?fields=id,name,age 鉴于用户类 [JsonObject(MemberSerialization.OptIn)] public partial class User { [JsonProperty] public int id { get; set; } [JsonProperty] public string firstname { get; set; } [JsonProperty] public string lastname { get; set; } [JsonProperty] public string name { get { return firstname + ” ” + lastname; } } [JsonProperty] public int age { […]

如何推动自定义控制器工厂ASP.Net MVC

我是mvc地区的新手。 所以我还在学习,并试图在MVC中学习很多先进的领域。 所以我正在阅读关于自定义控制器工厂ASP.Net MVC的post。 一个人解释得那么少,所以我只是不明白如何实施。 这里是post url 在asp.net mvc中是否可以制作通用控制器? 他说 您希望/Product/Index触发MyController.Index() 这可以通过编写自己的IControllerFactory并实现CreateController方法来实现,如下所示: public IController CreateController(RequestContext requestContext, string controllerName) { Type controllerType = Type.GetType(“MyController”).MakeGenericType(Type.GetType(controllerName)); return Activator.CreateInstance(controllerType) as IController; } 需要更多示例代码。 只是不明白在哪里定义CreateController函数。 我需要在基本控制器中编写此function吗? 当请求来自/Product/Index或/Customer/Index如何在基本控制器中调用索引方法? 所以在MVC高级领域寻找像我这样的新手的指导。 谢谢

.NET SMTP客户端 – 客户端无权作为此发件人发送

当我尝试通过ASP MVC3项目使用SmtpClient类发送电子邮件时,我的服务器上出现了奇怪的现象。 这是我正在使用的代码。 try { var client = new SmtpClient(“MailServer”); client.UseDefaultCredentials = true; MailMessage message = new MailMessage(“me@mydomain.com”, “friend@mydomain.com”, “Test Message”, “Test Body”); client.Send(message); } catch (Exception ex) { // Do Nothing } 我已经部署在三个环境中; 在Windows 7上(使用VS 2010 IIS)它发送电子邮件很好,在Windows 2003 IIS6机器上它发送电子邮件很好,最后在Windows 2008 R2 II7服务器上我收到以下错误: Mailbox unavailable. The server response was: 5.7.1 Client does not have permissions […]

你如何为一般类型的类编写C#扩展方法

这应该是一个简单的。 我想在System.Web.Mvc.ViewPage 类中添加一个扩展方法。 这个扩展方法应该怎么样? 我的第一个直觉思想是这样的: namespace System.Web.Mvc { public static class ViewPageExtensions { public static string GetDefaultPageTitle(this ViewPage v) { return “”; } } } 解 一般的解决方案是这个答案 。 扩展System.Web.Mvc.ViewPage类的具体解决方案是我的答案 ,从一般解决方案开始。 不同之处在于,在特定情况下,您需要一般类型化的方法声明和一个声明来强制将generics类型作为引用类型。

asp / .net / mvc中Datatype.EmailAddress的使用

我有一个帐户模型,我在其中使用电子邮件地址作为用户名 public class RegisterModel { [Required] [Display(Name = “Email Address”)] [DataType(DataType.EmailAddress)] public string UserName { get; set; } 我设计了一个自定义类来validation电子邮件。 但我最近注意到了DataType.EmailAddress 。 我尝试使用上面代码中显示的此数据类型来检查我是否可以在没有我的自定义类的情况下validation用户名但是它失败了。 所以我的问题是这个DataType在.NET是如何有用的。 它似乎在我的注册表上无所作为。 编辑:它甚至可以validation正则表达式。 例如,用户名: SS, ssssss, tttt, etc作为有效电子邮件传递。 编辑:人我有一个类来validation后面的代码中的电子邮件。 我知道帽子是validation电子邮件的复杂性。 我不是问如何validation电子邮件。 我只是问这个数据类型的用法。