Asp.net mvc ModelState.IsValid在jQuery中有效
我有一个cshtml表单,我在其中输入标题和文本,我希望实现的是,如果一切都有效,即数据输入成功,我将显示一个图像面板,并获取新条目的ID,以便我可以在图像面板内使用它 目前,我有以下几点:- 控制器:-Asp.net mvc ModelState.IsValid在jQuery中有效,asp.net-mvc,c#-4.0,jquery,razor,Asp.net Mvc,C# 4.0,Jquery,Razor,我有一个cshtml表单,我在其中输入标题和文本,我希望实现的是,如果一切都有效,即数据输入成功,我将显示一个图像面板,并获取新条目的ID,以便我可以在图像面板内使用它 目前,我有以下几点:- 控制器:- [HttpPost] public ActionResult Create(Project project) { var model = new CompositeImageModel(0); if (ModelState.IsValid) { model = new Co
[HttpPost]
public ActionResult Create(Project project)
{
var model = new CompositeImageModel(0);
if (ModelState.IsValid)
{
model = new CompositeImageModel(project.ProjectID);
ViewBag.ProjectID = project.ProjectID;
db.Projects.Add(project);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ProjectID = 0;
return View(model);
}
CSHTML:=
<script type="text/javascript">
$(document).ready(function () {
var imageList = $('#imageList'),
submitButt = $('#submitButt');
//hide the imageList initially
imageList.hide(); //hide all but the first paragraph
//when the user clicks on the create button, display the imageList
submitButt.click(function () {
imageList.fadeIn('slow');
});
});
</script>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Project</legend>
<div class="editor-label">
@Html.LabelFor(model => model.projectModel.ProjectTitle)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.projectModel.ProjectTitle, new { style = "width:460px" })
@Html.ValidationMessageFor(model => model.projectModel.ProjectTitle)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.projectModel.ProjectText)
</div>
<div class="editor-field">
@Html.TextAreaFor(model => model.projectModel.ProjectText, new { cols = 55, @rows = 5 })
@Html.ValidationMessageFor(model => model.projectModel.ProjectText)
</div>
<div id='submitButt'>
<input type="submit" value="Create" />
</div>
</fieldset>
}
<div id='imageList'>
<h2>Upload Image(s)</h2>
@{ Html.RenderPartial("~/Views/File/ImageUpload.cshtml", new MvcCommons.Models.CompositeImageModel((int)ViewBag.ProjectID)); }
</div>
<div>
@Html.ActionLink("Back to List", "Index")
</div>
$(文档).ready(函数(){
var imageList=$(“#imageList”),
submitButt=$(“#submitButt”);
//最初隐藏imageList
imageList.hide();//隐藏除第一段以外的所有段落
//当用户单击create按钮时,显示imageList
submitButt.单击(函数(){
imageList.fadeIn('slow');
});
});
@使用(Html.BeginForm())
{
@Html.ValidationSummary(true)
项目
@LabelFor(model=>model.projectModel.ProjectTitle)
@TextBoxFor(model=>model.projectModel.ProjectTitle,新的{style=“width:460px”})
@Html.ValidationMessageFor(model=>model.projectModel.ProjectTitle)
@LabelFor(model=>model.projectModel.ProjectText)
@TextAreaFor(model=>model.projectModel.ProjectText,新的{cols=55,@rows=5})
@Html.ValidationMessageFor(model=>model.projectModel.ProjectText)
}
上载图像
@{Html.RenderPartial(“~/Views/File/ImageUpload.cshtml”,新的MvcCommons.Models.CompositeImageModel((int)ViewBag.ProjectID));}
@ActionLink(“返回列表”、“索引”)
我的想法是检查jQuery脚本中的ModelState.IsValid
,如果是.Valid,则显示imagePanel并检索ViewBag中的ProjectID
然而,我不知道如何检索这个,如果它毕竟是最好的主意,或者可能有一个更好的主意在那里
感谢您的帮助和时间最后,我选择了低调的Ajax,在看到这个优秀的之后,我尝试了,但它告诉我,您可以在18小时内接受您的答案