2015-07-15 2 views
-1

Я пытаюсь прочитать параметры из URL-адреса в контроллере на C#. Но это дает ошибку. Я скопировал код и снимок экрана об ошибке.Прочитать аргумент C#

В этом коде я пытаюсь читать аргумент из URL, который является «привет»:

using AxureAPI.Models; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 

namespace AxureAPI.Controllers 
{ 
    public class YNAController : ApiController 
    { 
     public ProjectDetails[] Get() 
     { 
      string value = Request.QueryString["hello"]; 
      return new ProjectDetails[] 
      { 

      new ProjectDetails 
      { 
       Id = 1, 
       Name = "Prj1", 
       SvnPath = "svnPath1" 
      }, 
      new ProjectDetails 
      { 
       Id = 2, 
       Name = "Prj2", 
       SvnPath = "svnPath2" 
      } 
     }; 

     } 
    } 
} 

enter image description here

+0

«Но его дающая ошибка» - это * никогда * достаточная информация, и мы действительно не нуждаемся в скриншоте ошибки компилятора - пожалуйста, предоставьте ее как текст. –

+0

@ckruczek - Он вступил, когда я копировал код, иначе ничего не было в моем коде –

+0

Так что, я думаю, это MVC 3/4? Пожалуйста, будьте как можно более точными с использованием рамок. – ckruczek

ответ

2

Вы не можете получить доступ к строке запроса в WebAPI подобное. Вместо этого гораздо проще и проще позволить инфраструктуре MVC выполнить эту работу за вас и передать ее в качестве параметра. Изменение метода контроллера к этому, например, таким образом, вместо того, чтобы использовать QueryString["hello"] вы можете получить доступ к параметру непосредственно:

public ProjectDetails[] Get(string hello) 
{ 
    //Now do something with the parameter 'hello' 
    var whatever = "hello " + hello; 
} 

Теперь вы можете назвать свой API, как это:

http://server/api/YNA/Get?hello=fred 
+0

, если у меня есть более одного параметра, то что мне нужно сделать, пожалуйста, поделитесь –

+0

Затем просто добавьте больше параметров в ваш метод API. – DavidG

+0

Спасибо! за помощь –

0

попробовать это:

var query = message.RequestUri.ParseQueryString(); 
    string key = query["Hello"]; 
+1

Просьба предоставить дополнительную информацию и адаптировать свой ответ на вопрос. В вопросе нет ссылки на «сообщение» где угодно, так почему у вас есть это здесь и что это такое? – Knelis

+0

мой плохой @Knelis. мое «сообщение» - это «запрос» OP. –

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