如何更换"请求" ASP.NET Core View类的类方法?

时间:2016-08-14 00:11:34

标签: c# asp.net .net asp.net-core .net-core

我正在尝试将几个View类从.NET迁移到.NET Core中,而我遇到了缺少" Request"类方法。

我的具体代码如下:

    <svg xmlns="http://www.w3.org/2000/svg" width="106" height="106" viewBox="0 0 106 106" xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <circle id="a" cx="50" cy="50" r="50"/>
    <mask id="b" width="100" height="100" x="0" y="0" fill="white">
      <use xlink:href="#a"/>
    </mask>
  </defs>
  <g fill="none" fill-rule="evenodd" transform="translate(3 3)">
    <use stroke="#979797" stroke-width="12" mask="url(#b)" stroke-dasharray="6 9" xlink:href="#a">
 <animateTransform attributeName="transform"
                       attributeType="XML"
                       type="rotate"
                       from="0 50 50"
                       to="360 50 50"
                       dur="10s"
                       repeatCount="indefinite"  />
    </use>
    <circle cx="50.5" cy="50.5" r="36.5" fill="#D8D8D8"/>
  </g>
</svg>

如何替换.NET Core语法的<form id="contactUs" method="post" action="@Request.Url.GetLeftPart(UriPartial.Authority)@Url.Action("ContactUsFormSubmit")" accept-charset="utf-8"> 部分?

有没有更好的方法在.NET Core中调用权限部分?

1 个答案:

答案 0 :(得分:2)

Request现在可以在Controller中找到Request(来自基类),如果你在MVC视图中,可以在@Context.Request找到。

但是Request.Url没有替换所以你需要自己制作:(见编辑)

string.Concat(Request.Scheme, 
    "://", 
    Request.Host.ToUriComponent(), 
    Request.PathBase.ToUriComponent(), 
    Request.Path.ToUriComponent(),
    Request.QueryString.ToUriComponent())

但在你的情况下似乎没有必要。您可以让浏览器处理相对路径......

<form id="contactUs" method="post" action="@Url.Action("ContactUsFormSubmit")" accept-charset="utf-8">

或者使用MVC Core本地方式(使用标记帮助程序):

<form asp-controller="MyController" asp-action="ContactUsFormSubmit" method="post">

编辑:实际上有Request.Url的替代品:

添加:using Microsoft.AspNetCore.Http.Extensions; 然后拨打Request.GetDisplayUrl(); ...这将返回https://localhost/MyController/MyAction?Param1=blah