3
私のビューには2つのモデルが必要なので、それらを組み合わせたViewModel
を作成しました。それは方法を得ることです。しかし、投稿で私のinput type=submit
はViewModel
を返していますが、内部のプロパティの値はnullです。何かアドバイス?ViewModelプロパティsubmit on null
これらは、GETとPOST
[HttpGet]
public ActionResult Report(int id)
{
using (SkolskaBibliotekaDBModel db = new SkolskaBibliotekaDBModel())
{
ReportZaPrikaz RZP = new ReportZaPrikaz();
var komentar = db.Komentar.FirstOrDefault(x => x.KomentarID == id);
RZP.kzp = new KomentarZaPrikaz()
{
KomentarID = komentar.KomentarID,
KomentarText = komentar.KomentarText,
KorisnikID = komentar.KorisnikID,
Reported = komentar.Reported,
VremeKomentara = komentar.VremeKomentara,
Ime = komentar.Korisnik.Ime,
Prezime = komentar.Korisnik.Prezime,
PicPath = komentar.Korisnik.PicPath,
VoteUp = komentar.VoteUp,
VoteDown = komentar.VoteDown
};
RZP.report = db.PrijavaKomentara.Create();
return View("Report",RZP);
}
}
[HttpPost]
public void Report(ReportZaPrikaz RZP)
{
using (SkolskaBibliotekaDBModel db = new SkolskaBibliotekaDBModel())
{
db.PrijavaKomentara.Add(RZP.report);
db.SaveChanges();
}
}
のための私の行動は、これが私のviewmodelされている。
namespace SkolskaBiblioteka.ViewModels
{
public class ReportZaPrikaz
{
public KomentarZaPrikaz kzp;
public PrijavaKomentara report;
}
}
、これが私の見解です:
@model SkolskaBiblioteka.ViewModels.ReportZaPrikaz
@using SkolskaBiblioteka.ViewModels
@{
ViewBag.Title = "Пријава коментара";
}
<div class="container">
@Html.Partial("_Komentar", Model.kzp)
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>PrijavaKomentara</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@{
Model.report.KorisnikId = ((KorisnikZaPrikaz)Session["Korisnik"]).KorisnikId;
}
@Html.HiddenFor(x => x.report.KorisnikId)
@{
Model.report.KomentarId = Model.kzp.KomentarID;
}
@Html.HiddenFor(x => x.report.KomentarId)
@{
Model.report.VremePrijave = DateTime.Now;
}
@Html.HiddenFor(x => x.report.VremePrijave)
<div class="form-group">
@Html.LabelFor(model => model.report.Tekst, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.report.Tekst, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
</div>
あなたは私よりも数秒も速いです。私はまったく同じ答えを書いた+1 –
親愛なる神。昨夜は本当に遅かったです。ありがとう。 –