使用MVC3中的按钮

时间:2011-09-01 21:02:44

标签: asp.net-mvc-3 hyperlink

在我看来,我正在使用像这样的按钮

<button style=" color:White; height:30px; width:100px; background-image: url('@Url.Content("~/Content/Images/RedButton.gif")');" name="button" value="Add" type="submit">Add</button>&nbsp;&nbsp;&nbsp;
<button style=" color:White; height:30px; width:100px; background-image: url('@Url.Content("~/Content/Images/RedButton.gif")');" name="button" value="Save" type="submit">Save</button>&nbsp;&nbsp;&nbsp;
<button style=" color:White; height:30px; width:100px; background-image: url('@Url.Content("~/Content/Images/RedButton.gif")');" name="button" value="Cancel" type="submit">Cancel</button>  

并在控制器中像这样处理它们

    [HttpPost]
    public ActionResult Index(BuildRegionModel model, string button)
    {
        if (button == "Add")
            {

            }
        if (button == "Save")
            {

            }
        if (button == "Cancel")
            {

            }
        return View(model);
    }

有没有办法可以做这样的事情

<a href="#" onclick="javascript:location.href='@Url.Action("", "")'" class="RedButton">Add</a>
<a href="#" onclick="javascript:location.href='@Url.Action("", "")'" class="RedButton">Save</a>
<a href="#" onclick="javascript:location.href='@Url.Action("Home", "Index")'" class="RedButton">Cancel</a>

1 个答案:

答案 0 :(得分:2)

提交表单应该使用提交按钮完成。这是语义上正确的方式。这就是应该如何根据HTML规范提交表单。

锚点不应用于发布和提交表单。它们用于重定向和发出GET请求。锚不能提交表格。单击时,您必须编写javascript和 fake 表单提交,以便发送所有表单字段。

不要这样做,我不推荐它。

例如,当焦点在文本字段内时按下输入将不再起作用,您将不得不编写额外的javascript来处理所有互联网用户习惯的这种情况。这是一场噩梦。你最初使用提交按钮的方式是完美的。