'PostReply' kısmi görünümünü içeren 'Ayrıntılar' adıyla bir Görünümüm var. Ayrıntılar görünümünden PostReply Controller eylemine bir Kimlik iletmeye çalışıyorum.Bir Kimlik değerini Kısmi Görünüme Geçirme
Bunu Ayrıntılar görünümünde denedim, ancak id'in boş değerini iter. Bu aynı zamanda çalışmaz
Html.BeginForm("PostReply", "Question", new { id = Model.Question.ID}))
:
@Html.Partial("PostReply", new XXXXX.Models.Reply{ QuestionId = Model.Question.ID })
Sonra böyle Haberlercevaplar içinde BeginForm bir id değerine (Kısmi Görünüm) ekleyerek çalıştı. PostReply'den ayrıntılardan nasıl id değeri alabilirim? Şimdiden teşekkürler.
Detaylar Görünüm:
@model XXXXXX.Models.ParentView.Questions
....
@Html.DisplayNameFor(model => model.QuestionModel.Title)
@Html.DisplayNameFor(model => model.QuestionModel.Desc)
....
@Html.ActionLink("Edit", "Edit", new { id = Model.QuestionModel.ID }) |
@Html.ActionLink("Back to List", "Index")
....
@Html.Partial("PostReply", new Chemtalks.Models.Reply())
Haberlercevaplar (Kısmi Görünüm):
@model XXXXX.Models.Reply
@using (Html.BeginForm("PostReply", "Question", FormMethod.Post))
{
@Html.LabelFor(model => model.ReplyText)
@Html.EditorFor(model => model.ReplyText)
@Html.ValidationMessageFor(model => model.ReplyText
<input type="submit" value="Create" class="btn btn-default" />
}
Detaylar & Haberlercevaplar Kontrolörler:
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var model = new ParentView.Questions
{
QuestionModel = db.QuestionModels.Find(id),
Reply = db.Replies.Where(t => t.QuestionId == id)
};
if (model == null)
{
return HttpNotFound();
}
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult PostReply([Bind(Include = "ReplyID, ReplyText, UserID, QuestionId")] Reply reply, int? id)
{
try
{
if (ModelState.IsValid)
{
reply.QuestionId = id;
reply.UserID = User.Identity.GetUserId();
db.Replies.Add(reply);
db.SaveChanges();
}
}
catch (DataException)
{
ModelState.AddModelError("", "Unable to post your reply. Please try again later.");
}
return PartialView(reply);
}
QuestionModel:
public class QuestionModels
{
public int ID { get; set; }
public string Title { get; set; }
public string Desc { get; set; }
public string UserID { get; set; }
[ForeignKey("QuestionId")]
public virtual ICollection<Reply> Replies { get; set; }
}
public class Reply
{
public int ReplyID { get; set; }
public string ReplyText { get; set; }
public string UserID { get; set; }
public int? QuestionId { get; set; }
public virtual QuestionModels QuestionsModels { get; set; }
}
ParentView Modeli:
public class ParentView
{
public class Questions
{
public QuestionModels QuestionModel { get; set; }
public IEnumerable<Reply> Reply { get; set; }
}
}
Yeni XXXXX.Models.Reply {QuestionID = Model.Question.ID}) 'Reply' QuestionId' yüzden tahmin ediyorum' adında bir özellik içeren 'demektir' Modelleri gösterildiği ancak henüz senin formunuzda yeni {id = Model.QuestionId} 'ifadesini isteyin ('NullReferenceException'ı atayan' Model.Question.ID 'değil) –
Ben de modelleri ekledim. QuestionId bir tablodaki yabancı bir anahtardır. Yanıtla ve ben de soru formülü ID'si – ashhad
ile doldurmaya çalışıyorum Önce tüm ilgili olmayan kodu düzenleyeyim ve sileyim. –