Model view controller 模型验证在局部视图中不起作用
大家好,我是MVC的新手。所以请帮帮我 我的问题是。。我使用局部视图,如下所示Model view controller 模型验证在局部视图中不起作用,model-view-controller,Model View Controller,大家好,我是MVC的新手。所以请帮帮我 我的问题是。。我使用局部视图,如下所示 @model IELTS_TEST.Models.StatusMaster @{ Layout = null; } <script src="~/Scripts/jquery-1.7.1.min.js"></script> <script src="~/Scripts/jquery.validate.min.js"></script> <script
@model IELTS_TEST.Models.StatusMaster @{
Layout = null; } <script src="~/Scripts/jquery-1.7.1.min.js"></script> <script
src="~/Scripts/jquery.validate.min.js"></script> <script
src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
@using (Html.BeginForm("Create", "Status", "POST")) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Create New Status</legend>
<div class="editor-label">
@Html.LabelFor(model => model.STATUSDESC)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.STATUSDESC)
@Html.ValidationMessageFor(model => model.STATUSDESC)
</div>
<p>
<button type="submit" id="btnSave" name="Command" value="Save" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">
<span class="ui-button-text">Save</span></button>
</p>
</fieldset> }
<div>
@Html.ActionLink("Close", "StatusMaster") </div>
模型类是
`
所以我的部分视图被打开为弹出窗口
但问题是没有在客户端执行模型验证
页面转到服务器端,页面中不再存在弹出窗口
您必须为这里给出的beginform方法使用正确的重载
它应该是beginformcreate、status、FormMethod.Post
我建议您使用HTML.ajaxform或使用自定义jQuery ajax发布数据,这样弹出式模型仍然可以使用
作为一种良好的开发实践,不要从控制器抛出任何异常,处理异常,记录异常,并向最终用户添加友好消息。或者将控制器基类更改为负责处理未处理异常的派生基类控制器
嗯
public ActionResult CreateStatus()
{
try
{
if (Request.IsAjaxRequest())
{
ViewBag.IsUpdate = false;
return View("_Create");
}
else
return View();
}
catch (Exception ex)
{
throw ex;
}
}
[HttpPost]
public ActionResult Create(IELTS_TEST.Models.StatusMaster objStatusMaster, String Command)
{
try
{
if (!ModelState.IsValid)
{
return PartialView("_Create", objStatusMaster);
}
else
{
if (IELTS_TEST.Models.StatusMaster.SaveStatus(objStatusMaster))
{
TempData["Msg"] = "Status added succeessfully";
ModelState.Clear();
return RedirectToAction("StatusMaster", "Status");
}
}
return PartialView("_Create", objStatusMaster);
}
catch (Exception ex)
{
throw ex;
}
}
public class StatusMaster
{
public int statusid { get; set; }
[Required(ErrorMessage = "Please Provide Status Description!")]
[StringLength(50, ErrorMessage = "Status Description cannot be more than 50 characters long!")]
[Display(Name = "Status Description")]
public string statusdesc { get; set; }
public int makerid { get; set; }
public DateTime makerdate { get; set; }
public int modiid{ get; set; }
public DateTime modefieddate{ get; set; }
}`