2014-08-28 17 views
1

我有一個控制器的方法是這樣的:使用FORM進行GET - 如何設置查詢字符串參數?

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

我懷疑是錯誤消息,你是獲得與您在問題中顯示的代碼無關。大概在此Create動作定義ProjectController類有哪些你沒有正確配置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

你是對的。我開始設置我的windsor框架,忘了把它掛起來 - 呃!你剛剛救了我很長一段時間調試這個代碼...(注意自己:有時候牀)。謝謝! – 2014-08-28 21:31:35

相關問題