2014-08-28 5 views
1

У меня есть метод контроллера, как это:Создание GET с помощью FORM - как задать параметры запроса?

public ActionResult Create(string project_title) 
    { 
     return View(new ProjectViewModel() 
     { 
      Title = project_title 
     }); 
    } 

На другой странице, я хочу, чтобы получить значение текстового поля и отправить в качестве параметра строки запроса к этому методу.

Мой взгляд на этой странице выглядит следующим образом:

@using (Html.BeginForm("Create", "Project", FormMethod.Get)) 
{ 
    <input type="text" id="project_title" name="project_title" placeholder="Title of your project" class="input-lg" /> 
    <input type="submit" value="Get started" class="btn btn-success btn-lg" /> 
} 

Однако, в то время как я думал, что будет работать, я получаю следующее сообщение об ошибке:

No parameterless constructor defined for this object. 

ответ

4

Я подозреваю, что сообщение об ошибке вы получение не имеет ничего общего с кодом, который вы указали в своем вопросе. Вероятно, ProjectController класса, в котором определенно этом Create действие имеет некоторый нестандартный конструктор, для которого вы не правильно настроить вашу структуру DI, чтобы придать правильную зависимость:

public class ProjectController : Controller 
{ 
    public ProjectController(IFoo foo) 
    { 
    } 

    public ActionResult Create(string project_title) 
    { 
     return View(new ProjectViewModel() 
     { 
      Title = project_title 
     }); 
    } 
} 

Если вы не имеете по умолчанию (без параметров) безпараметрический конструктор вашего контроллера. Контроллер контроллера ASP.NET MVC по умолчанию не сможет создать экземпляр этого ProjectController, если вы не используете какую-либо инфраструктуру DI и не указываете конкретный тип, который должен быть введен в этот конструктор.

+0

Вы правы. Я начинаю настраивать свою систему виндзора и забыл подключить ее - duh! Вы просто спасли меня в течение долгого времени, отлаживая этот код ... (обратите внимание на себя: иногда кровать). БЛАГОДАРЯ! –

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