gpt4 book ai didi

asp.net-mvc - 没有为此对象定义无参数构造函数。在 ASP.NET MVC Controller 中

转载 作者:行者123 更新时间:2023-12-04 02:56:19 26 4
gpt4 key购买 nike

我相信这很简单,但我有点卡在这里。为我的应用程序定义的路由只是默认设置。我定义了以下 Controller 。

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/然后第一个 Action 完全按预期执行,呈现以下 View :-
<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 容器没有正确设置有关,但是第一个操作执行没有问题的事实肯定意味着这不是问题吗?

任何帮助将不胜感激。

问候。

西蒙

最佳答案

添加到类 DocumentEditViewModel 默认构造函数

public DocumentEditViewModel (){}

关于asp.net-mvc - 没有为此对象定义无参数构造函数。在 ASP.NET MVC Controller 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com