【发布时间】:2017-09-14 18:46:28
【问题描述】:
我确信这很简单,但我有点卡在这里。为我的应用定义的路由只是默认值。我定义了以下控制器。
namespace Baynes.Wedding.Web.Controllers
{
public class AdminController : Controller
{
private readonly IAuthProvider _authProvider;
private readonly IDocumentRepository _documentRepository;
public AdminController(IAuthProvider authProvider, IDocumentRepository documentRepository)
{
_authProvider = authProvider;
_documentRepository = documentRepository;
}
public ViewResult EditDocument(int id)
{
var document = _documentRepository.Select(id);
return View(new DocumentEditViewModel(document));
}
[HttpPost]
public ActionResult EditDocument(DocumentEditViewModel model)
{
if (ModelState.IsValid)
{
_documentRepository.Update(model.ToDocument());
return RedirectToAction("ListDocuments");
}
return View();
}
}
}
当我导航到/Admin/EditDocument/1/ 时,第一个操作完全按预期执行,呈现以下视图:-
<h2>@ViewBag.Title</h2>
@using (Html.BeginForm("EditDocument", "Admin", FormMethod.Post)) {
@Html.ValidationSummary(true)
@Html.HiddenFor(m => Model.Id)
<div>
@Html.LabelFor(m => Model.Title)
</div>
<div>
@Html.TextBoxFor(m => Model.Title)
</div>
<div>
@Html.LabelFor(m => Model.Body)
</div>
<div>
@Html.TextAreaFor(m => Model.Body)
</div>
<div>
@Html.LabelFor(m => Model.Url)
</div>
<div>
@Html.TextBoxFor(m => Model.Url)
</div>
<input type="submit" value="Edit" />
}
提交时出现错误:-
No parameterless constructor defined for this object. 其他问题看似相关的问题MVC: No parameterless constructor defined for this object 建议这与未正确设置 IoC 容器有关,但可以肯定的是,第一个操作执行没有问题意味着这不是问题在这里?
任何帮助将不胜感激。
问候。
西蒙
【问题讨论】:
-
能否提供 DocumentViewModel 的代码
标签: asp.net-mvc