我有一个像这样的控制器方法:
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.
答案 0 :(得分: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框架并指定具体的要在此构造函数中注入的类型。