MVC-Viewmodel EFモデルを使用しています。ビューに2つのフォームを作成しようとしています(CREATE用とDELETE用)。 しかし、私はそれが仕事を得るカント...私はこのエラーを取得する:MVC:コントローラ内の他の領域からビューのbeginformへの呼び出し
There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'Sname'.
私はドロップダウンリストのための私のDeleteSubjectTypeにこのコードを持っており、その2つの形態を使用してイムので、そこに仮定beacuseこの問題が発生したと思います。どういうわけか、私のフォームで動作しているDeleteSubjectTypeの動作です。
誰かが私のコードを見てみることができれば、私は感謝:
これは私が私の見解のbeginformsで使用したい私の行動と私のコントローラです:
public ActionResult CreateSubjectType()
{
CreateViewModel model = new CreateViewModel();
return View(model);
}
[HttpPost]
public ActionResult CreateSubjectType(CreateViewModel model)
{
if (ModelState.IsValid)
{
SubjectType s = new SubjectType();
s.Sname = model.Sname2;
Arep.addsubject(s);
Arep.save();
return RedirectToAction("CreateSubjectType");
}
return View(model);
}
public ActionResult DeleteSubjectType(int id)
{
CreateViewModel model = new CreateViewModel();
List<SubjectType> subjectypes = Arep.getallS();
model.SubjectTypes = new SelectList(subjectypes, "SID", "Sname");
SubjectType SubjectTypeToDelete = Arep.getbysid(id);
return View(model);
}
[HttpPost]
public ActionResult DeleteConfirmed2(int id)
{
SubjectType SubjectTypeToDelete = Arep.getbysid(id);
Arep.DeletSubjects(SubjectTypeToDelete);
Arep.save();
return RedirectToAction("Index");
}
は、これが私の見解です。
@model NKI3.ViewModels.CreateViewModel
@using (Html.BeginForm("CreateSubjectType","Admin",FormMethod.Post))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Skapa ny utvärderingsobjekt</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Sname2, "Välj ny utvärderingsobjekt")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Sname2)
@Html.ValidationMessageFor(model => model.Sname2)
</div>
<p>
<input type="submit" value="Lägg till" />
</p>
</fieldset>
}
@using (Html.BeginForm("DeleteSubjectType","Admin",FormMethod.Post))
{
<fieldset>
<legend>Ta bort utvärderingsobjekt</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Sname, "Befintliga Utvärderingsobjekt")
</div>
<div class="editor-field">
@Html.DropDownListFor(f => f.Sname, Model.SubjectTypes)
@Html.ValidationMessageFor(model => model.Sname)
</div>
<p>
<input type="submit" value="Ta bort" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Tillbaka", "Index")
</div>
ありがとうございます!
あなたはそれがうまくいかないということを意味しますか?それはあまりにも漠然としており、働きたくない人たちにはあまり魅力的ではありません。 –
私の投稿を編集しました – Obsivus