2013-10-25 20 views
0

一個在我的控制器方法返回一個具有像http://localhost:17000/Questionnaire/CompleteQuestionnaire?GuidToken=4815823D-3BFF-487D-AEB0-BB874AE9FBDE
鏈接和其他方法返回一個視圖只是鏈接象/Questionnaire/CompleteQuestionnaire?GuidToken=4815823D-3BFF-487D-AEB0-BB874AE9FBDE獲取鏈接的根部

[HttpGet] 
    public JsonResult ShowUrlQuestionnaire(int id) 
    { 
     var questionnaire = QuestionnaireRepository.GetById(id); 
     var questionnaireUrl = "/Questionnaire/CompleteQuestionnaire?GuidToken=" + questionnaire.QuestionnaireId.ToString(); 
     return Json(questionnaireUrl, "text/html", System.Text.Encoding.UTF8, 
        JsonRequestBehavior.AllowGet); 
    } 

如何添加鏈接的根部分var questionnaireUrl

我試圖在控制器

private string GetBaseUrl() 
    { 
     var request = HttpContext.Current.Request; 
     var appUrl = HttpRuntime.AppDomainAppVirtualPath; 

     if (!string.IsNullOrWhiteSpace(appUrl)) appUrl += "/"; 

     var baseUrl = string.Format("{0}://{1}{2}", request.Url.Scheme, request.Url.Authority, appUrl); 

     return baseUrl; 
    } 

添加這個方法,但我得到了錯誤
Error 1 'System.Web.HttpContextBase' does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument of type 'System.Web.HttpContextBase' could be found (are you missing a using directive or an assembly reference?) 如何解決呢?

+0

我不認爲在您向我們展示的代碼中出現錯誤。你是否在某處使用類似'HttpContextBase.Current'的東西?例如,在'QuestionnaireRepository.GetById'中。 –

+0

@CodeCaster非常感謝鏈接,我寫了'var request = System.Web.HttpContext.Current.Request;'現在它可以工作。 – Heidel

+0

您需要添加,作爲您自己的問題的答案,並將其標記爲這樣。 – greg84

回答