2013-10-25 3 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

ответ

Смежные вопросы