Dr.Bronx
سه شنبه 06 اسفند 1392, 18:28 عصر
با سلام .
این کد های کنترلر ( البته مربوط به همین View )
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "Id,Name,Description,FolioId,Permission,CreatedOn,C reatedUser,Published")] Categories categories)
{
if (ModelState.IsValid)
{
Guid guid;
MembershipUser user = Membership.GetUser(User.Identity.Name);
guid = (Guid)user.ProviderUserKey;
Methods method = new Methods();
string NowTime = method.TodayDate(1) + " - " + DateTime.Now.ToString("HH:mm");
categories.CreatedUser = guid;
categories.CreatedOn = NowTime;
db.Categories.Add(categories);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(categories);
}
این هم View
@model XS.Models.Articles.Categories.Categories
@{
ViewBag.Title = "ایجاد موضوع";
Layout = "~/Areas/_AdminLayout.cshtml";
}
<div style="margin-top:30px;padding-bottom:2px;">
<img src="~/Content/images/category.png" style="position:absolute;" />
<h3 style="padding-top:20px; margin-right:70px;">موضوعات</h3>
</div>
<hr />
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div>
@Html.ValidationSummary(true)
<div>
@Html.LabelFor(model => model.FolioId)
<div>
@Html.DropDownListFor(x => x.FolioId, Model.FolioName, new { @class = "DropDown_Width150" })
@Html.ValidationMessageFor(model => model.FolioName)
</div>
</div>
<br />
<div>
@Html.LabelFor(model => model.Name)
<div>
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
<br />
<div>
@Html.LabelFor(model => model.Description)
<div>
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
</div>
<br />
<div>
@Html.LabelFor(model => model.Permission)
<div>
@Html.EditorFor(model => model.Permission)
@Html.ValidationMessageFor(model => model.Permission)
</div>
</div>
<br />
<div>
<label class="switch switch-fullgreen">
@Html.EditorFor(model => model.Published)
<span class="switch-label" data-on="فعال" data-off="غیرفعال"></span>
<span class="switch-handle"></span>
</label>
@Html.ValidationMessageFor(model => model.Published)
</div>
<br />
<div>
<div>
<input type="submit" id="submit" value="ایجاد موضوع" class="btn btn-success" />
@Html.ActionLink("بازگشت به لیست", "Index")
</div>
</div>
</div>
}
<script>
$(document).ready(function () {
$('#Published').addClass("switch-input")
});
</script>
در حالت معمولی مشکلی نیست .
اما وقتی میخوام که کتابخونه های jquery رو اضافه کنم تا validation ها انجام بشه مشکل پیش میاد و این هست که وقتی روی کلید Submit کلیک می کنم هیچ اتفاقی نمیفته . حتی خطایی هم توی کنسول نمایش داده نمیشه . دیباگ هم کردم . اصلا اکشن Create اجرا نمیشه .
بعد از اضافه کردن :
jquery.validate.min.js
و
jquery.validate.unobtrusive.min.js
این مشکل به وجود میاد .
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
تنظیمات webconfig
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
این کد های کنترلر ( البته مربوط به همین View )
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "Id,Name,Description,FolioId,Permission,CreatedOn,C reatedUser,Published")] Categories categories)
{
if (ModelState.IsValid)
{
Guid guid;
MembershipUser user = Membership.GetUser(User.Identity.Name);
guid = (Guid)user.ProviderUserKey;
Methods method = new Methods();
string NowTime = method.TodayDate(1) + " - " + DateTime.Now.ToString("HH:mm");
categories.CreatedUser = guid;
categories.CreatedOn = NowTime;
db.Categories.Add(categories);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(categories);
}
این هم View
@model XS.Models.Articles.Categories.Categories
@{
ViewBag.Title = "ایجاد موضوع";
Layout = "~/Areas/_AdminLayout.cshtml";
}
<div style="margin-top:30px;padding-bottom:2px;">
<img src="~/Content/images/category.png" style="position:absolute;" />
<h3 style="padding-top:20px; margin-right:70px;">موضوعات</h3>
</div>
<hr />
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div>
@Html.ValidationSummary(true)
<div>
@Html.LabelFor(model => model.FolioId)
<div>
@Html.DropDownListFor(x => x.FolioId, Model.FolioName, new { @class = "DropDown_Width150" })
@Html.ValidationMessageFor(model => model.FolioName)
</div>
</div>
<br />
<div>
@Html.LabelFor(model => model.Name)
<div>
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
<br />
<div>
@Html.LabelFor(model => model.Description)
<div>
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
</div>
<br />
<div>
@Html.LabelFor(model => model.Permission)
<div>
@Html.EditorFor(model => model.Permission)
@Html.ValidationMessageFor(model => model.Permission)
</div>
</div>
<br />
<div>
<label class="switch switch-fullgreen">
@Html.EditorFor(model => model.Published)
<span class="switch-label" data-on="فعال" data-off="غیرفعال"></span>
<span class="switch-handle"></span>
</label>
@Html.ValidationMessageFor(model => model.Published)
</div>
<br />
<div>
<div>
<input type="submit" id="submit" value="ایجاد موضوع" class="btn btn-success" />
@Html.ActionLink("بازگشت به لیست", "Index")
</div>
</div>
</div>
}
<script>
$(document).ready(function () {
$('#Published').addClass("switch-input")
});
</script>
در حالت معمولی مشکلی نیست .
اما وقتی میخوام که کتابخونه های jquery رو اضافه کنم تا validation ها انجام بشه مشکل پیش میاد و این هست که وقتی روی کلید Submit کلیک می کنم هیچ اتفاقی نمیفته . حتی خطایی هم توی کنسول نمایش داده نمیشه . دیباگ هم کردم . اصلا اکشن Create اجرا نمیشه .
بعد از اضافه کردن :
jquery.validate.min.js
و
jquery.validate.unobtrusive.min.js
این مشکل به وجود میاد .
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
تنظیمات webconfig
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />