'이 개체에 대해 정의 된 매개 변수가없는 생성자가 없습니다'예외가 발생했으며 범인은 내보기에서 @ Html.Action입니다. 나는 이것이 왜 일어나는지를 알아 낸다. 어떤 도움이라도 대단히 감사하겠습니다.@ Html.Action이 '이 개체에 대해 정의 된 매개 변수없는 생성자가 없습니다'예외가 발생했습니다.
내 컨트롤러
public class AsyncController : Controller
{
public ActionResult Jobs()
{
var jobViewModel = new JobViewModel("Junior Accountant", Sector.Accountancy, DateTime.Now, "Enterprise Banking");
return View(jobViewModel);
}
public ActionResult MoreJobs(JobViewModel model)
{
var viewModel = new MiniJobsView(model);
return PartialView("_Rand.cshtml", viewModel);
}
}
채용 정보보기
@model SampleAsyncPartialViews.ViewModels.JobViewModel
@{
ViewBag.Title = "Jobs";
}
<h2>@Model.Title</h2>
<h3>@Model.CompanyName</h3>
<h3>@Model.Sector</h3>
<h3>@Model.StartDate</h3>
@Html.Action("MoreJobs", Model);
_Rand 부분보기
@model SampleAsyncPartialViews.ViewModels.MiniJobsView
<div>
<h1>@Model.Title</h1>
</div>
JobViewModel
namespace SampleAsyncPartialViews.ViewModels
{
public class JobViewModel
{
public JobViewModel(string title, Sector sector, DateTime startDate, string companyName)
{
Title = title;
Sector = sector;
StartDate = startDate;
CompanyName = companyName;
}
public string Title { get; set; }
public Sector Sector { get; set; }
public DateTime StartDate { get; set; }
public string CompanyName { get; set; }
}
public enum Sector
{
Accountancy,
IT,
Marketing,
Sales
}
}
MiniJobsView는
namespace SampleAsyncPartialViews.ViewModels
{
public class MiniJobsView
{
public MiniJobsView(JobViewModel model)
{
Title = model.Title;
StartDate = model.StartDate;
}
public string Title { get; set; }
public DateTime StartDate { get; set; }
}
}
나는 @ Html.Action이 JobViewModel의 새로운 인스턴스를 생성해야하는 이유는 이미 모델을 통과있을 때 난 그냥 이해하지 않는 예외를 이해합니다.
매개 변수에 대한 모델을 취하는 ['Action()'메서드가 없습니다] (http://msdn.microsoft.com/en-us/library/system.web.mvc.html.childactionextensions.action() v = vs.118) .aspx). 왜 Action()을 사용해야합니까? –
당신은'@Html.Action ("MoreJobs", Model); 대신'@ Html.RenderAction ("MoreJobs", Model);' –