Я занимаюсь разработкой приложения в MVC3 с использованием nhibernate.
Это форум вопросов и ответов, где на первой странице вопросы отображаются в виде ссылки вместе с текстовой областью внизу для ввода вопроса.
Я сделал класс и файл сопоставления для того же.
Класс вопроса:
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; }
}
и это файл сопоставления:
<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>
Сохраняя внутри контроллера, я написал следующее:
[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());
}
Вид изнутри:
@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"/>
}
Теперь проблема в том, что он не сохраняет значение, введенное внутри "PostyourAnswer" textarea.even, если в него введено значение. Если я удалю обязательный атрибут, он сохранит данные в таблице, но мне нужно будет предоставить некоторую проверку, когда пользователь не вводит данные .. Пожалуйста, помогите мне, как это сделать