SianiD
دوشنبه 14 مرداد 1392, 13:04 عصر
با سلام من تو یکی از صفحه هام قابلیت کامنت واسه مطلب هارو گذاشتم به این صورت که وقتی رو دکمه افزودن نظر کلیک میشه 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>
وقتی بصورت معمولی کامنت بذاری مشکل نداره ، مشکل از جایی هست که یکی از فیلد ها 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>