オブジェクトの作成に問題がありますが、理由がわかりません。Post Create メソッドのパラメーターに null オブジェクトがあり、ModelState で次のエラーが発生します。
{System.InvalidOperationException: 型 'System.String' から型 'BlanskoMenu.Models.ActionOffer' へのパラメーター変換は失敗しました。これらの型間で変換できる型コンバーターがないためです。System.Web.Mvc.ValueProviderResult.ConvertSimpleType (CultureInfo カルチャ、オブジェクト値、型 destinationType) で System.Web.Mvc.ValueProviderResult.UnwrapPossibleArrayType (CultureInfo カルチャ、オブジェクト値、型 destinationType) で System.Web.Mvc.ValueProviderResult.ConvertTo (型の種類、CultureInfo カルチャ) System.Web.Mvc.DefaultModelBinder.ConvertProviderResult (ModelStateDictionary modelState、String modelStateKey、ValueProviderResult valueProviderResult、Type destinationType)} で
これらはコントローラーの私のメソッドです:
//
// GET: /Action/
public ActionResult Index()
{
var offers = _repository.GetAllActionOffers();
return View(offers);
}
//
// GET: /Action/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Action/Create
[HttpPost]
public ActionResult Create(ActionOffer action)
{
try
{
if (ModelState.IsValid)
{
_repository.CreateActionOffer(action);
return RedirectToAction("Index");
}
return View(action);
}
catch
{
return View(action);
}
}
これは私の ActionOffer モデルです:
public class ActionOffer
{
[Key]
public int Id { get; set; }
public string Text { get; set; }
public string Title { get; set; }
public string ImagePath { get; set; }
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
[DataType(DataType.Date)]
public DateTime EndDate { get; set; }
}
そして、これは私の作成ビューです:
@model BlanskoMenu.Models.ActionOffer
@{
ViewBag.Title = "Vytvořit akční nabídku";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Vytvořit akční nabídku</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Akční nabídka</legend>
@Html.HiddenFor(model => model.Id)
<div class="editor-label">
@Html.LabelFor(model => model.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Text)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Text)
@Html.ValidationMessageFor(model => model.Text)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.ImagePath)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ImagePath)
@Html.ValidationMessageFor(model => model.ImagePath)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.StartDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.StartDate)
@Html.ValidationMessageFor(model => model.StartDate)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.EndDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.EndDate)
@Html.ValidationMessageFor(model => model.EndDate)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
手伝ってくれてありがとう