با سلام من تو یکی از صفحه هام قابلیت کامنت واسه مطلب هارو گذاشتم به این صورت که وقتی رو دکمه افزودن نظر کلیک میشه Div مربوط به کامنت باز میشه و من کامنتم رو میذارم .
وقتی بصورت معمولی کامنت بذاری مشکل نداره ، مشکل از جایی هست که یکی از فیلد ها Valid نباشند .
مشکلاتی که پیش میاد :
1- فکر میکنم سمت کلاینت ولید نمیشه و میره سرور با اینکه من واسش DataAnnotations نوشتم .
2- تمام فرم های روی صفحه با مقدار وارد شده پر میشن و همون خطا های اعتبار سنجی رو میده .
کد View :
@using (Html.BeginForm()
{
@Html.ValidationSummary(true)
<a href="#@item.Id" class="@ur" >+ افزودن نظر</a>
<div id="@item.Id" style="width: 250px;display:none;">
<div style="font-size: 10px;">
@Html.LabelFor(model => model.Name)
</div>
<div class="k-textbox" style="width: 150px;">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div style="font-size: 10px;">
@Html.LabelFor(model => model.Family)
</div>
<div class="k-textbox" style="width: 150px;">
@Html.EditorFor(model => model.Family)
</div>
<div style="font-size: 10px;">
@Html.LabelFor(model => model.Email)
</div>
<div class="k-textbox" style="width: 150px;">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>
<div style="font-size: 10px;">
@Html.LabelFor(model => model.CmBody)
</div>
<div style="width: 150px;">
@Html.TextAreaFor(model => model.CmBody, new { style = "width:600px;", @maxlength = "290" })
@Html.ValidationMessageFor(model => model.CmBody)
</div>
<input type="hidden" name="Content_Fk" id="Content_Fk" value="@item.Id"/>
<p>
<input type="submit" class="k-button" value="ثبت" />
</p>
</div>
if (TempData["Success"] != null)
{
<div>
<p style="color:green;"><strong> @TempData["Success"].ToString()</strong></p>
</div>
}
if (TempData["Fail"] != null)
{
<div>
<p style="color:red;"><strong> @TempData["Fail"].ToString()</strong></p>
</div>
}
<script>
$(document).ready(function () {
var flag = true;
if(!flag)
{
$("#@item.Id").css("display", "block");
}
$(".@ur").click(function () {
if (flag) {
$("#@item.Id").css("display", "block");
flag = false;
}
else {
$("#@item.Id").css("display", "none");
flag = true;
}
});
});
</script>
}
</div>