Tag: asp.net mvc 3

有条件地禁用ASP.NET MVC控制器

有条件地禁用ASP.NET MVC控制器的最佳方法是什么? 如果web.config中的某些值为“true”,我希望能够访问控制器操作,如果是“false”,则我想访问404 我应该写自己的属性吗? 更新 :寻找比动作filter属性更优雅的解决方案(能够将非常量参数传递给属性构造函数) [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] public class CloseForSomeSettingAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { bool mySettingValue = MySettingManager.GetMySettingValue(); if (mySettingValue) { filterContext.Result = new HttpStatusCodeResult(404); } else { base.OnActionExecuting(filterContext); } } }

表单validation仅允许英文字母字符

我想限制我的表单输入输入非英文字符。 例如,所有中文,日文,Cyrllic,还有单个字符,如:à,â,ù,û,ü,ô,î,ê。 这可能吗? 我是否必须在我的MVC应用程序上设置区域设置,或者只是进行正则表达式文本框validation? 只是旁注,我希望能够输入数字和其他字符。 我只想要这个以排除字母。 请指教,谢谢

如何在c#代码中使用MVC 3 @ Html.ActionLink

我想在ac#函数中调用@ Html.ActionLink方法来返回一个带有链接的字符串。 像这样的东西: string a = “Email is locked, click ” + @Html.ActionLink(“here to unlock.”, “unlock”) ;

将参数传递给jsonresult的actionresult

我编写代码来过滤结果如下图, 一旦它过滤后我想将以下字段的模型值作为参数发送到另一个控制器方法,我可以在单击Generate Report按钮后调用该方法 这是视图文件 @model project_name.Models.SearchVM …. @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.ValidationSummary(true, “”, new { @class = “text-danger” }) …. @Html.LabelFor(m => m.Type, htmlAttributes: new { @class = “control-label col-md-2” }) @Html.DropDownListFor(m => m.Type, Model.TypeList, “Select the type”, new { @class = “form-control” }) @Html.ValidationMessageFor(model => model.Type, “”, new { @class = “text-danger” }) …………… […]

如何通过WebRequest调用MVC操作并通过Active Directoryvalidation请求?

我知道标题是满口的。 我已经掌握了大部分的东西。 我只需要确认我是否可以做我正在尝试的事情。 我正在使用ASP.NET MVC 3.我有一个应用程序,它具有我使用的控制器,就像一个Web服务。 控制器上有一个方法,它返回一个字符串,即json。 此方法根据活动目录对用户进行身份validation。 对上述应用程序执行WebRequest的应用程序也是MVC应用程序。 此应用程序(为了在没有特定用户名和密码的情况下查询AD)正在web.config中使用模拟。 该应用程序模拟有权查询AD的帐户; 但是,页面上用户的信息(例如他们所在的组)是我validation的。 简而言之(我并不完全理解这一部分),模仿是严格的,因此ASP.NET可以查询Active Directory。 当我查询活动目录以获取其信息时,加载页面的用户仍被视为自己。 AD代码如下所示(此代码有效): public static ADUserInfo GetUserInfo(IPrincipal User) { StringBuilder userAdInfo = new StringBuilder(); ADUserInfo userInfo = new ADUserInfo(); String domain = ConfigurationManager.AppSettings[“ADdomain”]; try { using (var context = new PrincipalContext(ContextType.Domain, domain)) { if (User == null) userAdInfo.AppendLine(“User is null.”); else if […]

通过MVC3中的TempData将MemoryStream转换为IMG – 有更好的方法吗?

除了其他属性之外,模型还包含将MSChart作为MemoryStream返回的方法。 在我的视图中,我将MemoryStream复制到TempData [“Chart”],然后使用URL.Action()调用控制器操作,以使用TempData中的MemoryStream返回FileContentResult。 在模型中 public MemoryStream ViewerChart() { Chart chart = new Chart(); : : using (MemoryStream memStream = new MemoryStream()) { chart.SaveImage(memStream, ChartImageFormat.Jpeg); return memStream; } } 在视图中 @{ TempData[“Chart”]= Model.ViewerChart(); } 在控制器中 public ActionResult RenderChart() { MemoryStream ms = TempData[“Chart”] as MemoryStream; return File(ms.ToArray(), “image/jpeg”); } 尽管工作正常,但这对我来说似乎有点讨厌,尤其是使用TempData 有没有更好的办法?

带有postfunction的MVC Html.ActionLink?

我正在检查是否有人为Html.ActionLink编写了一个MVC扩展,你可以传入Post参数,如: 这将使链接像正常一样呈现,但是有一个onClick事件,它提交一个也呈现的表单,其中包含Action,Controller和Route Values的Action url以及Post Parameters中的其他隐藏输入,如下所示: Click me 我希望将用户重定向到可能包含大量数据的各种页面。 不仅从页面到页面,而且从电子邮件到页面也是如此。 这将是高度可重用的,我认为会清理很多代码,并且如果它已经漂浮在那里,将节省大量时间来编写它。 我讨厌在不需要的时候重新制作轮子。

错误:异步操作仍处于挂起状态时,异步模块或处理程序已完成

我有一个Controller Action方法来保存用户详细信息,如下所示。 public async Task SaveUser(ViewModel.VM_CreateUser user) { var result = await _user.Save(userDetails); return Json(new { Success = String.IsNullOrEmpty(result) }); } 到目前为止,上述4行function没有问题。 public async Task SaveUser(ViewModel.VM_CreateUser user) { var result = await _user.Save(userDetails); new MailController().CreateUser(user.userDetails); //<==This is problem line of code. } 以下是我的邮件控制器。 public class MailController : MailerBase { public void CreateUser(ViewModel.VM_User user) { To.Add(user.EmailAddress); […]

路径数据到树状数据结构

我有以下数据 root root/blue root/blue/temp root/main root/main/dev root/main/back root/etc/init root/etc/init/dev root/etc/init/test root/etc/init/back root/etc/init/server root/etc/init/system root/etc/init/setup root/system root/system/temp1 root/system/temp2 root/system/temp3 root/system/temp4 root/system/temp5 root/system/temp5/dev1 root/rel root/intel/archival root/intel/archival/newsreel root/intel/archival/recording 我希望能够使用该类来数据绑定到树控件(ASP.Net)或生成用于jquery消耗的UL / Li。 我需要将它转换为List类,它将返回适当的层次结构。 到目前为止,我尝试了许多不同的方法,但我无法找到解决方案。 我被卡住了。 我尝试在较早的post中询问但是解决方案没有用,经过多次尝试修改一些它只是简单无效。 我希望你们中的一个可以帮助我。 这也不是一个简单的拆分函数,我知道如何拆分字符串。 先感谢您

entity framework:objectstatemanager中已存在具有相同密钥的对象

我看到这个问题已经被问了很多,但是我还没有发现任何可以解决我遇到的问题的东西。 显然我正在使用entity framework来执行记录更新。 但是,一旦更新完成,每当我尝试保存时,都会收到以下错误消息: An object with the same key already exists in the objectstatemanager 起初,我从包含ZipCodeTerritory模型对象zipToUpdate副本的视图中传入一个集合对象。 我通过拉出这个对象来改变代码,而只是发送相关的字段。 但是,我仍然遇到同样的错误。 还有什么奇怪的是我第一次运行这段代码,它运行正常。 在我得到错误之后的任何尝试。 调节器 以下是调用编辑函数的方法的代码 public static string DescriptionOnly(ZipCodeIndex updateZip) { if (!string.IsNullOrWhiteSpace(updateZip.newEffectiveDate) || !string.IsNullOrWhiteSpace(updateZip.newEndDate)) { return “Neither effective or end date can be present if updating Territory Code only; “; } _updated = 0; foreach (var zipCode […]