我有一个导航栏,它使用JQuery在注册过程的4个阶段之间移动。
但是我需要确保一切正常,JS已禁用。
所以我在页面底部有这4个链接图像,我需要这样,如果单击它,它会发布到当前操作,这样我就可以保存所有表单数据,然后重定向到下一个阶段。
重定向非常简单,因为我只是在路径或表单中传递参数,但我不知道如何仅使用操作链接发布方法。
我可以为图像背景等设置4个不同的提交按钮,但这感觉不对。
有什么想法吗?
答案 0 :(得分:3)
没有Javascript,一个简单的链接无法通过POST提交。您必须使用提交按钮才能执行此操作。幸运的是,HTML提供了一种简单的方法来执行图像提交按钮:
<input type="image" src="http://url/to/image" alt="Step 1" id="btnStep1" />
您始终可以为Javascript-able添加jQuery处理:
$('#btnStep1').click(function(){...});
答案 1 :(得分:2)
您可以在表单上设置多个提交按钮:
<input type="submit" name="step1" value="Step 1"/>
<input type="submit" name="step2" value="Step 2"/>
<input type="submit" name="step3" value="Step 3"/>
并在你的行动中:
public ActionResult Action(FormCollection form)
{
if (!string.IsNullOrEmpty(form["step1"]))
{
// Step 1 button was clicked
}
else if (!string.IsNullOrEmpty(form["step2"]))
{
// Step 2 button was clicked
}
else if (!string.IsNullOrEmpty(form["step3"]))
{
// Step 3 button was clicked
}
...
}
答案 2 :(得分:2)
您可以使用我在the net上找到的属性来处理同一表单上的多个按钮。这将确定在控制器上执行的操作。因此,您可以在控制器上执行4个操作,并根据单击的按钮执行正确的操作,而不管它在何处被调用。
这么少的例子;加价...
<input type="submit" name="action" value="step1"/>
<input type="submit" name="action" value="step2"/>
<input type="submit" name="action" value="step3"/>
<input type="submit" name="action" value="step4"/>
然后在控制器......
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "step1")]
public ActionResult Step1(/* parameters */) { ... }
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "step2")]
public ActionResult Step2(/* parameters */) { ... }
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "step3")]
public ActionResult Step3(/* parameters */) { ... }
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "step4")]
public ActionResult Step4(/* parameters */) { ... }
然后,您可以相对轻松地在注册过程中的任何步骤之间点击(可能一旦完成验证并且您已经完成了每个步骤)。
希望这有助于某人。我刚刚发布了发布日期的问题,但我还是认为我会发布这个: - )