aroshanzamir
جمعه 05 دی 1393, 11:24 صبح
سلام وقت بخیر
سوال را با مثال توضیح میدهم :
این کد های بخش Layout است که یک لینک آژاکس قرار دارد که این لینک یک پارشیال ویو را برگشت میدهد :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My ASP.NET Application</title>
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/modernizr-2.6.2.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
</head>
<body>
<div class="container body-content">
<br /><br />
@Ajax.ActionLink("کمپانی های سازنده", "Sample",
"Home",
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "main-content"
}, new { area = "admin" })
<br /><br />
<div id="main-content">
@RenderBody()
</div>
</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
</html>
این هم کنترولر من : که دو تا اکشن داره که یکیش فقط یک ویو ساده را برمیگردونه و یکیش یه پارشیال ویو برمیگردونه و ویو Index داره از مستر پیج من ارث بری می کنه ؟
public class HomeController : Controller
{
// GET: admin/Home
public ActionResult Index()
{
return View();
}
public PartialViewResult Sample()
{
return PartialView("_StudentValidate");
}
}
این هم پارشیال ویو :
@model ValidationForm.Areas.admin.Models.Student
<div class="col-md-12">
@using (Html.BeginForm("Create", "Home", FormMethod.Post, new { id="FormInsert" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(x => x.Name, new { @class = "col-md-2 control-label", })
<div class="col-md-10">
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Name, "", new
{
@class = "text-danger"
})
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
}
</div>
برنامه را اجرا کنیم و اکشن Index را فراخوانی می کنیم : بعد از اون بر روی لینک کمپانی های سازنده کلیک می کنیم و به صورت آژاکسی اون پارشیال ویو را بازگشت میدهد
مشکل اینجاست که اعتبار سنجی را انجانم نمیده :.....
این هم کلاس Student :
public class Student
{
public int Id { get; set; }
[Display(Name="Fisrt Name")]
[Required(ErrorMessage="Plese Enter Fist Name")]
public string Name { get; set; }
}}
یه چیز دیگه :
وقتی پارشیال ویو را از طریق Html.Partial() فرا خوانی کنیم اعتبار سنجی را انجام میده ولی وقتی از طریق یک متد اکشن فراخوانی کنیم مثل بالا اعتبار سنجی را انجام نمیده ؟
به نظرتون راهکار چیه ؟
سوال را با مثال توضیح میدهم :
این کد های بخش Layout است که یک لینک آژاکس قرار دارد که این لینک یک پارشیال ویو را برگشت میدهد :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My ASP.NET Application</title>
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="~/Content/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/modernizr-2.6.2.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
</head>
<body>
<div class="container body-content">
<br /><br />
@Ajax.ActionLink("کمپانی های سازنده", "Sample",
"Home",
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "main-content"
}, new { area = "admin" })
<br /><br />
<div id="main-content">
@RenderBody()
</div>
</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
</html>
این هم کنترولر من : که دو تا اکشن داره که یکیش فقط یک ویو ساده را برمیگردونه و یکیش یه پارشیال ویو برمیگردونه و ویو Index داره از مستر پیج من ارث بری می کنه ؟
public class HomeController : Controller
{
// GET: admin/Home
public ActionResult Index()
{
return View();
}
public PartialViewResult Sample()
{
return PartialView("_StudentValidate");
}
}
این هم پارشیال ویو :
@model ValidationForm.Areas.admin.Models.Student
<div class="col-md-12">
@using (Html.BeginForm("Create", "Home", FormMethod.Post, new { id="FormInsert" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(x => x.Name, new { @class = "col-md-2 control-label", })
<div class="col-md-10">
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Name, "", new
{
@class = "text-danger"
})
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</div>
}
</div>
برنامه را اجرا کنیم و اکشن Index را فراخوانی می کنیم : بعد از اون بر روی لینک کمپانی های سازنده کلیک می کنیم و به صورت آژاکسی اون پارشیال ویو را بازگشت میدهد
مشکل اینجاست که اعتبار سنجی را انجانم نمیده :.....
این هم کلاس Student :
public class Student
{
public int Id { get; set; }
[Display(Name="Fisrt Name")]
[Required(ErrorMessage="Plese Enter Fist Name")]
public string Name { get; set; }
}}
یه چیز دیگه :
وقتی پارشیال ویو را از طریق Html.Partial() فرا خوانی کنیم اعتبار سنجی را انجام میده ولی وقتی از طریق یک متد اکشن فراخوانی کنیم مثل بالا اعتبار سنجی را انجام نمیده ؟
به نظرتون راهکار چیه ؟