Tag: asp.net mvc 2

如何获取将在给定请求时调用的控制器操作的MethodInfo?

我有一个控制器和动作,负责处理403s,因为用户没有正确的角色。 它可以访问导致exception的原始RequestContext 。 我希望能够做的是用我们的行为描述装饰我的行为,然后允许用户通知他们的经理,请求访问,包括电子邮件中的描述。 那么, 在给出RequestContext , 如何确定将调用哪些操作? 显然,将控制器和动作名称从RouteData取出会更加复杂,因为通常会出现动作方法的重载等。 一旦我有MethodInfo那么很容易获得属性等。

导致此错误的原因是什么? 执行处理程序’System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper’的子请求时出错

我无法弄清楚为什么我会收到这个错误。 它发生在ajax调用上。 任何帮助表示赞赏。 谢谢! 这是完整的错误文本: – 6/21/2010 6:09:10 PM – System.Web.HttpException(0x80004005):执行处理程序’System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper’的子请求时出错。 —> System.Web.HttpUnhandledException(0x80004005):抛出了类型’System.Web.HttpUnhandledException’的exception。 —> System.Web.HttpException(0x80004005):使用自定义TextWriter时,OutputStream不可用。 在System.Web.HttpResponse.get_OutputStream()中的AjaxControlToolkit.ToolkitScriptManager.OutputCombinedScriptFile(HttpContext context)中的C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:第286行,位于AjaxControlToolkit.ToolkitScriptManager.OnInit(EventArgs e)在C:\ AjaxBuild \ Ajax \ Server \ AjaxControlToolkit \ ToolkitScriptManager \ ToolkitScriptManager.cs:系统中System.Web.UI.Control.InitRecursive(Control namingContainer)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的第246行System.Web.UI上System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)的System.Web.UI.Control.InitRecursive(Control namingContainer)中的.Web.UI.Control.InitRecursive(Control namingContainer)。 System.Web.UI.Page.ProcessRequest的System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)的Page.HandleError(例外e)(布尔includeStagesBef 在System.Web上的System.Web.UI.Page.ProcessRequest(HttpContext上下文)的System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext上下文)处的System.Web.UI.Page.ProcessRequest()处的oreAsyncPoint,布尔值includeStagesAfterAsyncPoint。位于c:\ Windows \ Microsoft.NET \ Framework […]

MVC映射到模型中的可空bool

使用包含该字段的视图模型: public bool? IsDefault { get; set; } 尝试在视图中映射时出错: model.IsDefault) %> 无法隐式转换类型’bool?’ ‘bool’。 存在显式转换(您是否错过了演员?) 我已经尝试过使用.Value并且都没有工作。 请注意我想要的行为是提交表单应该将模型中的IsDefault设置为true或false。 值null仅表示尚未填充模型。

HTML敏捷包 – 如何在Head元素的顶部追加元素?

我正在尝试使用HTML Agility Pack将脚本元素附加到我的html的HEAD部分的顶部。 到目前为止我看到的例子只是使用AppendChild(element)方法来实现这一点。 我需要将我附加到head部分的脚本放在其他脚本之前。 我怎么指定这个? 这是我正在尝试的: HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.Load(filePath); HtmlNode head = htmlDocument.DocumentNode.SelectSingleNode(“/html/head”); HtmlNode stateScript = htmlDocument.CreateElement(“script”); head.AppendChild(stateScript); stateScript.SetAttributeValue(“id”, “applicationState”); stateScript.InnerHtml = “‘{\”uid\”:\”testUser\”}'”; 我想在HEAD的顶部添加一个脚本标记,而不是在末尾附加。

ASP.NET MVC2父控制器不重定向

我有一个ASP.NET MVC2应用程序,它使用父控制器来设置应用程序周围使用的特定变量。 我还实现了validation,以确保数据库中存在URI中的ID。 如果没有,我重定向并停止执行脚本。 我的父控制器看起来像这样: // Inside class declaration // Set instance of account object to blank account protected Account account = new Account(); protected override void Initialize(System.Web.Routing.RequestContext requestContext) { // Call parent init method base.init(requestContext); // Check to make sure account id exists if (accountRepos.DoesExistById(requestContext.RouteData.Values[“aid”].ToString()) { account = accountRepos.GetById(requestContext.RouteData.Values[“aid”].ToString()); } else { requestContext.HttpContext.Response.Redirect(“url”); requestContext.HttpContext.Response.End(); […]

如何在asp.net mvc3中创建自定义授权filter

我有一个问题,我在asp.net mvc3中建立一个网站, 其中我制作了我的几个控制器,所有这些都是授权的 因为我不希望未经授权的用户访问该控制器。 假设我有一个控制器和2个方法,如下所示 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Com.health.Controllers { [Authorize] public class MyfirstController : Controller { public ActionResult Index() { return View(); } public ActionResult seeyourDetails(int id) { return View(); } } } 现在让我们假设我们的方法seeyourDetails告诉任何用户他的帐户信息,但问题是,当用户访问此方法时,URL为http://www.exampple.com/Myfirst/seeyourDetails/10 ,其中10为当前我向他展示他的详细信息的用户ID,但我应该怎么做,如果有人登录我的网站并且他访问此URL并在URL中手动添加10或任何其他号码,我的控制器将向他显示有关该用户的所有详细信息。 注意:我可以在一个地方或两个地方做这个,但我需要一些解决方案,我在一个地方实现,它在我的整个应用程序中有效。 谢谢

在ASP.NET MVC 2中动态呈现和发布表单元素

我必须动态呈现一组表单元素(基于在某些其他表单元素中选择的值)并将其值发布回控制器。 我有一个酒店业搜索表,其中包含酒店相关的搜索参数,如房间数,成人数,儿童数,儿童年龄等。 根据为“No of Rooms”下拉列表选择的值,我必须呈现/显示表单元素以捕获每个成人,儿童和儿童的年龄。 从我的视图到控制器,动态渲染和携带上述表单元素的值(成人,儿童的数量和儿童年龄,每个房间的数量)的更好的方法是什么? 我的VIEW MODEL看起来像这样: public class HotelSearchView { public DateTime CheckInDate { get; set; } public DateTime CheckOutDate { get; set; } public string DestinationCity { get; set; } public List Guests { get; set; } // Other fields… } public class GuestView { public string RoomNumber { get; set; } […]

在MVC中的Entity框架中动态添加表

我有一个MVC应用程序,我需要动态添加表,即动态准备表名。 有什么方法可以检查表的存在,如果不存在则将其添加到实体模型中。 如果我们能够创建表,那么我们如何使用实体模型的对象访问动态创建的表名?

EditorFor如何在表单元素上设置ID和Name html属性

我有几层嵌套自定义用户控件: RegisterUser.aspx <%@ …. Inherit="System.Web.Mvc.ViewPage” … m.Details) %> … UserDetails.ascx <%@ …. Inherit="System.Web.Mvc.ViewUserControl” … m.BirthDate) %> … 我在Shared / EditorTemplates中声明了DateTime.ascx <%@ …. Inherit="System.Web.Mvc.ViewUserControl” … … 问题是如何设置输入id属性? 我知道EditorFor为默认类型提供了一些魔力。 例如,如果DateTime的类型为string,则EditorFor会将输入类型的id设置为“Details_BirthDate”,将name属性设置为“Details.BirthDate”。 我想知道它是如何完成的? 因为我想将它用于我的特殊自定义类型。

如何创建具有不同权限视图的页面

我需要一些帮助来创建具有不同视图的页面。 不要误解我的意思,我不希望任何人为我编写代码,我只是想知道我需要实现什么。 我会详细说明我需要的东西: 例如:Facebook页面。 如果我在我的个人资料页面上,我有一种类型的视图,我可以编辑所有数据,甚至可以查看未设置的数据并添加更多信息。 如果我正在访问朋友的页面,我只能看到他想要我的内容并在他允许的范围内与他的页面进行互动。 例2:一位用户在某些博客上发布了信息。 他和所有拥有权限的人都可以编辑该信息,另一个人只能在权限允许的情况下阅读和发布评论。 我清楚了吗? 我无法找到Google引用,因为我不知道这种技术的名称,我输入的关键字并没有带我到任何地方。 我感谢任何帮助。 谢谢。