Tag: asp.net mvc 3

实体类型List`1不是当前上下文的模型的一部分

我一直在使用Database First,EF 4.1 我得到“实体类型List`1不是当前上下文模型的一部分。” 尝试从“编辑视图”更新记录时出错。 错误发生在 db.Entry(properties).State = EntityState.Modified; 这是我的模型: public class Users { [Key] public int User_ID { get; set; } public string UserName { get; set; } [NotMapped] public IEnumerable User_Properties { get { return Properties.Where(u => u.User_ID == User_ID); } } public virtual ICollection Properties { get; set; } } public class […]

在MVC 3中创建自定义数据注释validation

例如,我有一个Employee视图模型。 创建员工时,我想validation用户名以确保其不存在。 public class EmployeeViewModel { [ScaffoldColumn(false)] public int EmployeeId { get; set; } [ValidateDuplicate(ErrorMessage = “That username already exists”)] [Required(ErrorMessage = “Username is required”)] [DisplayName(“Username”)] public string Username { get; set; } } 然后让我的ValidateDuplicate函数在某处使用代码来检查重复。 这可能吗?

c#mvc 3,动作重载?

我一直试图重载我的索引方法。 这是我的索引方法: [ActionName(“Index”)] public ActionResult IndexDefault() { } [ActionName(“Index”)] public ActionResult IndexWithEvent(string eventName) { } [ActionName(“Index”)] public ActionResult IndexWithEventAndLanguage(string eventName, string language) { } 这保持铸造: 控制器类型’CoreController’上的当前操作请求’Index’在以下操作方法之间是不明确的:System.Web.Mvc.ActionResult类型为ManageMvc.Controllers.CoreController的IndexDefault()System.Web.Mvc.ActionResult IndexWithEvent(System。类型为ManageMvc.Controllers.CoreController的类型为ManageMvc.Controllers.CoreController的System.Web.Mvc.ActionResult IndexWithEventAndLanguage(System.String,System.String) 是否不可能使用3种不同的GET方法重载索引操作? 此外,如果可能,那么正确的路线是什么? 我有这个: routes.MapRoute( “IndexRoute”, // Route name “{eventName}/{language}/Core/{action}”, // URL with parameters new { controller = “Core”, action = “Index”, eventName = UrlParameter.Optional, language = UrlParameter.Optional […]

在MVC 3中禁用部分视图上的缓存

我有一个部分View被缓存的问题,当它不应该被缓存。 此部分视图用于显示页面上的登录/注销。 它使用下面的简单代码来确定要显示的链接 @if(Request.IsAuthenticated) { Log Off } else { Log On } 使用我的MVC3应用程序中的所有页面调用此部分视图 @Html.Partial(“_HeaderView”) 在我的大多数控制器中,我定义了输出缓存,因此我可以利用缓存内容。 [OutputCache(Duration = 86400, VaryByParam = “*”)] 现在我的问题是,当我不想要部分视图时,整个页面都被缓存了。 这导致了错误的行为,即使用户没有登录,它有时会显示LogOff等。有没有办法缓存所有内容,除了有问题的部分视图?

使用自定义消息的MVC 3 AuthorizeAttribute重定向

如何创建自定义AuthorizeAttribute,以字符串参数的forms指定消息,然后将其传递到登录页面? 例如,理想情况下这样做会很酷: [Authorize(Message = “Access to the blah blah function requires login. Please login or create an account”)] public ActionResult SomeAction() { return View(); } 然后,在Login操作中,我可以这样做: public ActionResult Login(string message = “”) { ViewData.Message = message; return View(); } 最后在视图中我可以这样做: @if (!String.IsNullOrEmpty(ViewData.Message)) { @ViewData.Message } blah blah 基本上我想将自定义消息传递到登录页面,以便我可以显示特定于用户在该特定时间尝试访问的消息。

使用自己的助手创建? 喜欢Html.BeginForm

我想知道,是否有可能创建自己的帮助器定义,使用? 例如以下创建表单: using (Html.BeginForm(params)) { } 我想做那样的自己的帮手。 这是一个我想做的简单例子 using(Tablehelper.Begintable(id) { content etc } 这将在我的视图中输出 content etc 这可能吗? 如果是这样,怎么样? 谢谢

ASP.NET MVC自定义成员资格提供程序 – 如何重载CreateUser?

我正在尝试构建自定义成员资格提供程序。 我想在注册期间捕获其他信息(名字和姓氏),我不使用用户名(电子邮件是登录名)。 在我的自定义成员资格提供程序中,我正在尝试重载CreateUser方法,如下所示: public override MyMembershipUser CreateUser(string firstName, string lastName, string email, string password) { … } 但是,当我想从帐户控制器调用它时: [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user MembershipCreateStatus createStatus; Membership.CreateUser(model.FirstName, model.LastName, model.Email, model.Password); if (createStatus == MembershipCreateStatus.Success) { return RedirectToAction(“Index”, “Home”); } else { ModelState.AddModelError(“”, ErrorCodeToString(createStatus)); } } // […]

如何从JS访问ViewBag

我试过的方法。 通过浏览器查看JS, @ViewBag.CC只是空白…(缺少) var c = “#” + “@ViewBag.CC”; var d = $(“#” + “@ViewBag.CC”).value; var e = $(“#” + “@ViewBag.CC”).val(); var c = “@ViewBag.CC”; var d = $(“@ViewBag.CC”).value; var e = $(“@ViewBag.CC”).val();

使用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 .. 感谢任何建议。