Sono sicuro che questo è abbastanza semplice ma sono un po 'bloccato qui. Il routing definito per la mia app è solo l'impostazione predefinita. Ho definito il seguente controller.Nessun costruttore parametrico definito per questo oggetto. in ASP.NET MVC 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();
}
}
}
Se navigando nelle /Admin/EditDocument/1/
quindi la prima azione esegue esattamente come previsto, rendendo la seguente vista: -
<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" />
}
Su Inviando questo ottengo un errore: -
No parameterless constructor defined for this object.
Altre domande domande apparentemente collegate MVC: No parameterless constructor defined for this object suggeriscono che è una cosa da fare con il contenitore IoC che non viene impostato correttamente, ma sicuramente il fatto che la prima azione venga eseguita senza problemi significa che non è il pr oblem qui?
Qualsiasi aiuto sarebbe molto apprezzato.
Saluti.
Simon
è possibile fornire codice per DocumentViewModel –