Javascript 带局部视图的逐步应用程序
因此,我有一个应用程序分为几个部分。我把这些部分放在它们自己的部分视图中(请记住,我可以用任何最好的方式来做,尽管部分视图可能是内容管理的方式)。我有一个包含所有这些部分的主视图。现在我想要一种方法,根据用户点击按钮进入下一步,一次只查看一个Javascript 带局部视图的逐步应用程序,javascript,asp.net-mvc-4,c#-4.0,telerik-open-access,Javascript,Asp.net Mvc 4,C# 4.0,Telerik Open Access,因此,我有一个应用程序分为几个部分。我把这些部分放在它们自己的部分视图中(请记住,我可以用任何最好的方式来做,尽管部分视图可能是内容管理的方式)。我有一个包含所有这些部分的主视图。现在我想要一种方法,根据用户点击按钮进入下一步,一次只查看一个 Fill in name Name: Steve button: Next Step 当客户端单击“下一步”按钮时,它将导致局部视图从步骤1更改为步骤2。等等 我在这件事上遇到了很多麻烦。我尝试调用了一个viewbag.step=“0”,在onclic
Fill in name
Name:
Steve
button: Next Step
当客户端单击“下一步”按钮时,它将导致局部视图从步骤1更改为步骤2。等等
我在这件事上遇到了很多麻烦。我尝试调用了一个
viewbag.step=“0”
,在onclick中为按钮执行了一个viewbag.step=“1”
的javascript,在布局视图中为if viewbag.step==“0”显示步骤1 if viewbag.step==“1”显示步骤2等等,但由于参考问题,这不起作用 可以在每个部分中呈现一个ID为的div
,然后将onclick设置为下一部分可见。在本例中,您必须包括jQuery
大概是这样的:
主CSHTML
@using(Html.BeginForm())
{
@Html.RenderPartial("_PartialView1");
@Html.RenderPartial("_PartialView2");
....
<button onclick="setPage()" >Click me</button>
<script type="text/javascript">
var pageNum = 1;
function setPage()
{
var oldPageId = "#Partial" + pageNum;
pageNum++;
var idToSet = "#Partial" + pageNum;
// toggles visibility
$(oldPageId).toggle();
$(idToSet).toggle();
}
</script>
}
@使用(Html.BeginForm())
{
@Html.RenderPartial(“_PartialView1”);
@Html.RenderPartial(“_PartialView2”);
....
点击我
var pageNum=1;
函数setPage()
{
var oldPageId=“#Partial”+pageNum;
pageNum++;
var idToSet=“#部分”+pageNum;
//切换可见性
$(oldPageId).toggle();
$(idToSet.toggle();
}
}
然后你的部分像:
<div id="Partial1">
<input type="text" id="Text1"></input>
</div>
<div id="Partial2" style="visibility:hidden">
<input type="text" id="Text2"></input>
</div>
等等。考虑到你有三个部分,第一部分,第二部分,第三部分
编写3个返回局部视图的操作方法
[HttpPost]
public ActionResult Section1Details(Section1 data,string prevBtn, string nextBtn)
{
if (nextBtn != null)
{
if (ModelState.IsValid)
{
// Do the logic
return View("Section 2");
}
}
return View();
}
[HttpPost]
public ActionResult Section2Details(Section2 data,string prevBtn, string nextBtn)
{
if (prevBtn!=null)
{
// wirte logic here
return View("Section1",bd);
}
if (nextBtn != null)
{
if (ModelState.IsValid)
{
// Do the logic
return View("Section3");
}
}
return View();
}
[HttpPost]
public ActionResult Section3Details(Section3 data,string prevBtn, string nextBtn)
{
if (prevBtn!=null)
{
// wirte logic here
return View("Section2",bd);
}
if (nextBtn != null)
{
if (ModelState.IsValid)
{
// Do the logic
// Save changes
return View("Success");
}
}
return View();
}
在你看来,
@using (Html.BeginForm("Section1", "Home", FormMethod.Post))
{
<h1>Step 1 : Basic Details</h1>
@Html.LabelFor(m=>m.Name)<br />
@Html.TextBoxFor(m=>m.Name)
@Html.ValidationMessageFor(m=>m.Name)<br />
<br />
<input type="submit" name="nextBtn" value='Next Step' />
}
@使用(Html.BeginForm(“第1节”,“主页”,FormMethod.Post))
{
步骤1:基本细节
@Html.LabelFor(m=>m.Name)
@Html.TextBoxFor(m=>m.Name)
@Html.ValidationMessageFor(m=>m.Name)
}