2016-08-14 56 views
2

我想從.NET中將少數View類遷移到.NET Core中,並且缺少「請求」類方法。如何替換ASP.NET Core View類的「請求」類方法?

我的具體代碼如下:

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

我怎能取代Request.Url.GetLeftPart(UriPartial.Authority)一部分.NET核心語法?

有沒有更好的方式調用.NET核心中的權威部分?

回答

2

如果您處於MVC視圖中,現在可以在Controller(來自基類)或@Context.Request中找到Request作爲Request

但沒有對Request.Url更換所以你需要自己做它:(見EDIT)

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核心原生方式(使用標籤傭工):

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

編輯:其實有是Request.Url更換:

地址:using Microsoft.AspNetCore.Http.Extensions; 然後致電Request.GetDisplayUrl(); ...這將返回https://localhost/MyController/MyAction?Param1=blah

+0

我老實說只是遷移項目,並不確定他們爲什麼決定這樣做。這是一個精簡的Web應用程序,用作Web窗體。所以簡單的標籤助手也對我更有意義,但我會問我的經理有關獲取權威url的目的。他們專門在多個醫學網站和主頁上使用此表格。有沒有任何理由獲得權威網址?謝謝 –

+0

@KemalTezerDilsiz就像他們想指向絕對網址的......但我不知道他們爲什麼要這麼做... –

+0

我有這個代碼在同一個視圖類中的其他代碼: '' 它可能是相關的嗎?我怎麼能取代這個? –

相關問題