• @Html.ActionLink(),@Html.Raw(),@Url.Action()等


    开新项目时在母版页上发现了一个很长很长很长的字段,

    @Html.ActionLink("超链接名字", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })

    就是这个了,基本内容已经填了上去,但还是做一个记录,一起带上其他一些常见的字段

    @Html.ActionLink()

    @Html.ActionLink()本身是作为一个超链接使用,并且可以有很多参数,但是前面几个是固定的,@Html.ActionLink()中最少要填写两个参数

    第一个参数为超链接名字,第二个参数为对应的控制器方法,在没有第三个参数时,会默认为当前页面作为对应的控制器,

    举个例子:@Html.ActionLink("我是超链接", "Index")没有第三个参数,本页面对应的控制器为HomeController,

    在页面上会生成的超链接样式为<a href="/Home/Index">我是超链接</a>

    第三个参数为控制器名字,此参数可以省略,后面的参数写法都比较统一都为new{};第四个参数为routeValues此参数可以传参(此参数可为一个对象),

    例如:@Html.ActionLink("我是超链接", "Index", new{ id = 1 })翻译时会把1带入到url中,但是是否可以传入多个参数还未有尝试,

    其他a标签中的属性也可以依次格式添加,

    @Html.ActionLink("我是超链接", "Index", new{ id = 1 }, new{ target = "_blank" },new{class="red"})

    <a href="/Home/Index/1" target="_blank" class="red">我是超链接</a>

    还有一个在别处看到的格式,也一并放上来

    Html.ActionLink("linkText","actionName","controlName","protocol","hostName","fragment",routeValues,htmlAttributes)

    该重载使用比较少,他可以指定访问的协议,域名还有锚点,如 Html.ActionLink("liuwu","Detail","Products","http",") 可以生成 <a href=">

     

    @Html.Raw()

    此方法用于前端接收后端传入数据的转换,

     var data = @Html.Raw(ViewBag.Data);
        var vm = new Vue({
            el: '#ready',
            data: {
                dt: data,
        }

    @Url.Action()

    @Url.Action("action1")

    使用指定的操作名称生成操作方法的完全限定 URL 


    @Url.Action("action1", new {id=1 })

    使用指定的操作名称和路由值生成操作方法的完全限定,注:第二个参数为Object类型故可以直接new出一个匿名对象,注意和后面的重载方法对比


     @Url.Action("action1","controller1")

     使用指定的操作名称和控制器名称生成操作方法的完全限定 


    @Url.Action("action1", new RouteValueDictionary {{"id",1} })

    为指定的操作名称和路由值生成操作方法的完全限定 ,注:第二个参数类型为RouteValueDictionary类型故不可以只是简单的new一个匿名对象


    @Url.Action("action1", "controller1", new { id=1})

     使用指定的操作名称、控制器名称和路由值生成操作方法的完全限定 URL 


    @Url.Action("action1", "controller1", new RouteValueDictionary {{"id",1} })

    使用指定的操作名称、控制器名称和路由值生成操作方法的完全限定 URL 


    URL @Url.Action("action1", "controller1", new {id=1},"http或https")

     使用指定的操作名称、控制器名称、路由值和要使用的协议生成操作方法的完全限定 


    Action(String, String, RouteValueDictionary, String, String)

    @Url.Action("action1", "controller1", new RouteValueDictionary {{"id",1} }, "http或https", "www.baidu.com")

    使用指定的操作名称、控制器名称、路由值、要使用的协议和主机名生成操作方法的完全限定 URL ,注:最后的参数为主机名即域名

     附加:

    @Url.Action(),@Html.ActionLink(),Html.RenderAction()和@Html.Action()的区别

    1. 返回值不同

    @Html.Action()返回值为MvcHtmlString。Html.Action比较灵活,可以直接写在页面上,也可以把它赋值给某一变量,处理之后写在页面上。 Html.RenderAction()返回值为void。Html.RenderAction必须写在@{}内,直接由Response对象输出。例:@{ Html.RenderAction("Index", "Import");} @Html.ActionLink()返回值也是MvcHtmlString。 @Url.Action()返回值为string。MvcHtmlString本质上也是string,两者都可以直接现在页面上。

    2. 生成的东西不同

    @Html.ActionLink("myLink", "CCC", "Import")生成<a href="/Import/CCC">myLink</a> @Url.Action("CCC", "Import")直接生成字符串"/Import/CCC",没有任何tag标签。

  • 相关阅读:
    【11.3】
    WPF中内嵌网页的两种方式
    .net的winform中DialogResult属性的使用
    MVC过滤器使用方法
    C#调用C++的DLL错误解决方法
    WPF中UserControl的属性和事件
    React架构之路
    读完这一篇,字符串格式化界的“白富美”(f-strings)抱回家!
    关于使用format()方法格式化字符串,读这一篇就够了!
    String,StringBuffer与StringBuilder
  • 原文地址:https://www.cnblogs.com/wanghuanl/p/14154062.html
Copyright © 2020-2023  润新知