Ich entwickle eine Anwendung in MVC3 mit Nhibernate. Es ist ein Frage-Antwort-Forum, wo auf der ersten Seite die Fragen als Link zusammen mit einem Textfeld unten angezeigt werden, um die Frage einzugeben. Ich habe eine Klasse und eine Mapping-Datei für die gleiche gemacht. Frage Klasse:NHibernate/ASP.NET textarea binding Problem
public class Questions
{
public virtual int QuestionID { get; set; }
[Required]
public virtual string Question { get; set; }
public virtual int CreatedBy{ get; set; }
public virtual DateTime CreatedDate { get; set; }
public virtual int ModifiedBy { get; set; }
public virtual DateTime ModifiedDate { get; set; }
public virtual char Deleted { get; set; }
public virtual IList<Answers> Answer { get; set; }
}
und dies ist die Mapping-Datei:
[HttpPost]
public ActionResult Question_Page(Questions ques, string PostyourQuestion)
{
ques.Question = PostyourQuestion;
ques.CreatedDate = DateTime.Now;
ques.ModifiedDate = DateTime.Now;
ques.CreatedBy = 101;
ques.ModifiedBy = 101;
if (ModelState.IsValid)
{
new QuestionService().SaveOrUpdateQuestions(ques);
}
return View(new QuestionService().GetAllQuestions());
}
Innenansicht:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly ="Core" namespace ="Core.Model" >
<class name ="Questions" >
<id name="QuestionID">
<generator class="native" />
</id>
<property name="Question"/>
<property name="CreatedBy" />
<property name="CreatedDate" />
<property name="ModifiedBy" />
<property name="ModifiedDate" />
<property name="Deleted"/>
<bag name="Answer" table="ANSWERS" lazy="true">
<key column="FKQuestionID"/>
<one-to-many class="Core.Model.Answers"/>
</bag>
Während in der Steuerung Speichern ich dieses wriiten haben
@using (Html.BeginForm("Question_Page","QuestionAnswer",FormMethod.Post))
{
@Html.ValidationSummary(false)
<ul>
@foreach (var item in Model)
{
<li>@Html.ActionLink(item.Question, "Answer_Page", new { Id = item.QuestionID}) </li>
}
</ul>
<br />
<h2><label for="PostyourQuestion:">Post your Question:</label></h2>
@Html.TextArea("PostyourQuestion")
<br /><br />
<input type="submit"/>
}
Nun das Problem ist es nicht den Wert innen „PostyourAnswer“ textarea.even eingegeben spart, wenn der Wert eingeben in it.if i entfernen Sie das gewünschte Attribut es die Daten in der Tabelle speichern wird, aber ich Ich brauche eine Validierung, wenn der Benutzer keine Daten eingibt. Bitte helfen Sie mir dabei.
hey Aber ich dieses Modell IEnumerable bin mit als meine Modelltyp so gewohnt in der Lage sein, Html.EditorFor (Model.Question) zu verwenden dats yi verwendet Eingabe-Typ –
user1274646
Eigentlich muss der EditorFor-Parameter ein Lambda sein: '@ Html.EditorFor (m => m.Question)' –
@esker du hast Recht, aber wie ich oben gesagt habe, benutze ich IEnumerable, also kann ich das nicht benutzen .. kannst du mir einen anderen Weg vorschlagen, dies zu tun !!! – user1274646