GVKun编程网logo

有人可以向我介绍asp.net路由语法吗?(有人可以向我介绍asp.net路由语法吗)

8

此处将为大家介绍关于有人可以向我介绍asp.net路由语法吗?的详细内容,并且为您解答有关有人可以向我介绍asp.net路由语法吗的相关问题,此外,我们还将为您介绍关于asp.net–有人可以帮我理解

此处将为大家介绍关于有人可以向我介绍asp.net路由语法吗?的详细内容,并且为您解答有关有人可以向我介绍asp.net路由语法吗的相关问题,此外,我们还将为您介绍关于asp.net – 有人可以帮我理解这个堆栈跟踪吗?、asp.net – 有人可以解释VistaDB吗?、asp.net-mvc – 具有不同参数名称的Asp.Net路由、asp.net-mvc – 回发无法使用ASP.NET路由(视图状态MAC验证失败)的有用信息。

本文目录一览:

有人可以向我介绍asp.net路由语法吗?(有人可以向我介绍asp.net路由语法吗)

有人可以向我介绍asp.net路由语法吗?(有人可以向我介绍asp.net路由语法吗)

我在Web窗体方案中处理此代码:
public static void RegisterRoutes(RouteCollection routes)
  {

    Route r = new Route("{*url}",new MyRouteHandler());
    routes.Add(r);
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.IgnoreRoute("{resource}.gif/{*pathInfo}");

  }

首先,任何人都可以告诉我{* pathInfo}的定义在哪里?
http://msdn.microsoft.com/en-us/library/cc668201.aspx#url_patterns没有真正定义它。请问:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

比赛

/c/xyz.axd and 
/b/c/xyz.axd and
/a/b/c/xyz.axd

routes.IgnoreRoute("{resource}.axd");

只有比赛

/xyz.axd

其次,在:

{*url}

这是什么意思?而整个表达是什么意思呢?有没有明确的解释?

第三,是否有特定的顺序需要添加这些表达式来正确忽略路由?我知道{* url}是某种可能的,如果IgnoreRoutes来到它之前或之后,例如

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
Route r = new Route("{*url}",new MyRouteHandler());
routes.Add(r);

解决方法

我的2美分:
路由不是正则表达式。它只是组成路由的变量和静态组件,由段(由斜杠标识)分隔。有一个特殊符号,最后一个变量中的星号,这意味着从这里,忽略段分隔符 – 斜杠。所以,
{*url}

是最简单的路由,因为它意味着取整个URL,将其放入变量“url”,并将其传递到与该路由相关联的页面。

{controller}/{action}/{id}

将所有内容都放在第一个分段(第一个斜杠)到变量“controller”中,将第一个和第二个之间的所有内容放在变量“action”中,第二个和第三个斜杠(或结束)之间的所有内容,进入变量’id’。然后将这些变量传递到关联页面。

{resource}.axd/{*pathInfo}

这里把信息放在.axd /(它不能有任何斜线!)到’资源’,并把所有的第一个/进入’pathInfo’。由于这通常是一个ignoreRoute,所以不是将其传递给关联的页面,而是由Stop​​Handler处理,这意味着路由将不会处理它,而是由非路由HttpHandler处理。

如bleevo所说,路由被执行,以便它们被添加到集合中。所以在处理通用路由之前必须添加IgnoreRoute。

这是马的嘴:http://msdn.microsoft.com/en-us/library/cc668201.aspx

具体到你的例子,我会把IgnoreRoute行放在你的路线之上,因为你的路由实际上是一个全部的。另外,请记住.gif忽略只有在gif位于根目录下才能被保证。

asp.net – 有人可以帮我理解这个堆栈跟踪吗?

asp.net – 有人可以帮我理解这个堆栈跟踪吗?

我收到一个对象引用未设置为从我的网站上通过电子邮件发送给我的页面中的对象错误的实例.当我去那个页面时,我没有遇到任何错误.有人可以根据这个堆栈跟踪解释“可能”发生的事情.我知道渲染有问题,但我不知道从哪里开始……谢谢.

at ASP.controls_si_item_ascx.__Render__control1(HtmlTextWriter __w,Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer,ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.Htmlform.renderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.Htmlform.render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter adapter)
at System.Web.UI.HtmlControls.Htmlform.renderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterasyncPoint)

解决方法

在我的Web.config文件中设置Debug =“True”后,我能够看到问题的原因.

终于找到了答案:)在我的.ascx文件中,我有一些JavaScript根据控件ID选择了一个选项卡.事实证明,在某些情况下控制不可用,因此会引发对象引用错误.这是我的代码:

var hdnSCSSelectedTabIndex=$('#<%= hdnSCSSelectedTabIndex.ClientID %>');
var tabIndex = hdnSCSSelectedTabIndex.val();

而我现在这样做:

<% if (hdnSCSSelectedTabIndex != null) { %>
    var hdnSCSSelectedTabIndex=$('#<%= hdnSCSSelectedTabIndex.ClientID %>');
    var tabIndex = hdnSCSSelectedTabIndex.val();
<% } %>

已经解决了问题.

希望这有助于别人:)

asp.net – 有人可以解释VistaDB吗?

asp.net – 有人可以解释VistaDB吗?

我看到它越来越多,并没有真正理解它的目的?我可以在桌面本地开发时使用它吗?

或者我可以将商业网站放在使用VistaDB的Win2003服务器上吗?它比使用sql DB更快吗?它安全吗?

困惑…

解决方法

VistaDB是Microsoft提供的轻量级数据库系统的.NET替代品:Jet(Microsoft Access),MSDE,sql Server CE或sql Server Express.您可以在需要数据库的任何.NET应用程序中使用它,并且您不需要拥有客户端/服务器数据库的开销.

VistaDB是一个嵌入式数据库(其他一些嵌入式数据库是sqlite和FireBird).这基本上意味着您的数据库对您的最终用户完全“不可见”.例如,他们不需要像sql Server那样安装客户端/服务器数据库.部署VistaDB很简单.您所需要的只是数据库文件和应用程序中对VistaDB运行时DLL的引用.

使用VistaDB作为后端的商业应用程序是Graffiti CMS.

asp.net-mvc – 具有不同参数名称的Asp.Net路由

asp.net-mvc – 具有不同参数名称的Asp.Net路由

我正在尝试映射某些路由,以便自动生成的Urls看起来像
这两个代码块的Admin / controller / action / param,
@ Url.Action(“action”,“controller”,new {id =“param”})和
@ Url.Action( “行动”,“控制器”,新的{类型= “参数”})

我所做的是在区域注册中的以下内容,

context.MapRoute(
            "Admin_default","Admin/{controller}/{action}/{id}",new { action = "Index",id = UrlParameter.Optional },new string[] { "namespaces" });

        context.MapRoute(
            "Admin_type","Admin/{controller}/{action}/{type}",type = UrlParameter.Optional },new string[] { "namespaces" });

当参数名称为id时,生成的url是预期的,但是当参数名称是type,而不是controller / action / typevalue时,它会生成类似controller / action /?type = typevalue的内容

有没有办法生成像控制器/动作/类型值的url保持Admin_default路由的生成器行为完整?

解决方法

when parameter name is id,url generated is as expected,but when
parameter name is type,instead of controller/action/typevalue,it
generates something like controller/action/?type=typevalue

发生这种情况是因为第一条路线用于映射网址(ID是可选的).

您可以尝试为路线添加一些约束.我猜你的id参数是一个整数,type参数是一个字符串.在这种情况下,您可以尝试使用此路线:

context.MapRoute(
                "Admin_default",new { id = @"\d+" },new string[] { "namespaces" });

context.MapRoute(
                "Admin_type",new string[] { "namespaces" });

您可以找到有关路线约束here的更多信息.

asp.net-mvc – 回发无法使用ASP.NET路由(视图状态MAC验证失败)

asp.net-mvc – 回发无法使用ASP.NET路由(视图状态MAC验证失败)

我正在使用ASP.NET 3.5 SP1 System.Web.Routing与经典WebForms,如 http://chriscavanagh.wordpress.com/2008/04/25/systemwebrouting-with-webforms-sample/中所述

一切正常,我有自定义SEO网址甚至回发作品.但有一种情况,回发总是失败,我得到一个:

验证视图状态MAC失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法. AutoGenerate不能在群集中使用.

以下是重现错误的方案:

>使用按钮创建标准webform mypage.aspx
>创建一个将“a / b / {id}”映射到“〜/ mypage.aspx”的路线
>当您执行该站点时,您可以导航http://localhost:XXXX/a/b/something页面工作.但是当你按下按钮时会出现错误.当Route只是“a / {id}”时,不会发生错误.

它似乎与url中的子路径数有关.如果至少有2个子路径,则视图状态验证失败.

即使使用EnableViewStateMac =“false”,您也会收到错误.

有任何想法吗?这是一个错误吗?

谢谢

解决方法

我通过让我的视图用户控件继承自此类而不是ViewUserControl< T>来解决这个问题. (这是RenderView的补丁).它为我做了伎俩,希望它也适合你.
public class ViewUserControlWithoutViewState<T> : ViewUserControl<T> where T : class {
    protected override void LoadViewState(object savedState) {}

    protected override object SaveControlState() {
        return null;
    }

    protected override void LoadControlState(object savedState) {}

    protected override object SaveViewState() {
        return null;
    }

    /// <summary>
    /// extracted from System.Web.Mvc.ViewUserControl
    /// </summary>
    /// <param name="viewContext"></param>
    public override void RenderView(ViewContext viewContext) {
        viewContext.HttpContext.Response.Cache.SetExpires(DateTime.Now);
        var containerPage = new ViewUserControlContainerPage(this);
        ID = Guid.NewGuid().ToString();
        RenderViewAndRestoreContentType(containerPage,viewContext);
    }

    /// <summary>
    /// extracted from System.Web.Mvc.ViewUserControl
    /// </summary>
    /// <param name="containerPage"></param>
    /// <param name="viewContext"></param>
    public static void RenderViewAndRestoreContentType(ViewPage containerPage,ViewContext viewContext) {
        string contentType = viewContext.HttpContext.Response.ContentType;
        containerPage.RenderView(viewContext);
        viewContext.HttpContext.Response.ContentType = contentType;
    }

    /// <summary>
    /// Extracted from System.Web.Mvc.ViewUserControl+ViewUserControlContainerPage
    /// </summary>
    private sealed class ViewUserControlContainerPage : ViewPage {
        // Methods
        public ViewUserControlContainerPage(ViewUserControl userControl) {
            Controls.Add(userControl);
            EnableViewState = false;
        }

        protected override object LoadPageStateFromPersistenceMedium() {
            return null;
        }

        protected override void SavePageStatetoPersistenceMedium(object state) {}
    }
}

我blogged about this前一段时间.

关于有人可以向我介绍asp.net路由语法吗?有人可以向我介绍asp.net路由语法吗的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于asp.net – 有人可以帮我理解这个堆栈跟踪吗?、asp.net – 有人可以解释VistaDB吗?、asp.net-mvc – 具有不同参数名称的Asp.Net路由、asp.net-mvc – 回发无法使用ASP.NET路由(视图状态MAC验证失败)的相关信息,请在本站寻找。

本文标签: