我在asp.net mvc3 razor视图中创建了一个删除链接,如下所示:
<td>
@Html.ActionLink("Edit", "EditCategory", new { id = item.CategoryId }) |
@Html.ActionLink("Details", "Details", new { id = item.CategoryId }) |
@using (Html.BeginForm("Delete", "Admin"))
{
@Html.Hidden("id", item.CategoryId)
<input type="submit" value="Delete" />
}
</td>
并创建了一个这样的动作方法:
[HttpPost]
public ActionResult Delete(int Id)
{
Category category = repository.Categories().FirstOrDefault(c => c.CategoryId == Id);
if (category != null)
{
repository.DeleteCategory(category);
TempData["message"] = string.Format("{0} was deleted", category.CategoryName);
}
return RedirectToAction("Categories");
}
工作正常。但我想使用超链接删除,因为我用于编辑和详细信息。如何使用actuionlink更换按钮。我试过了,但它没有进入删除帖子操作链接,我得到查看未找到错误。
答案 0 :(得分:4)
你可以使用css看起来像链接而不是按钮,就像这样。
<input type="submit" value="delete" style="border: none; background: none;
text-decoration: underline;
cursor: pointer;">
答案 1 :(得分:2)
小心不要通过HTTP GET使删除操作可用。 HTTP规范建议HTTP POST用于破坏性操作(如删除)。这可以防止Web爬虫执行它们。
默认情况下,超链接会发出HTTP GET。如果将删除操作更改为超链接,请确保覆盖其行为(通过JavaScript)以发出HTTP POST。然后你需要考虑如果浏览器关闭JavaScript会发生什么。
您可能需要考虑的另一种方法是[[使您的删除按钮看起来像通过CSS样式的超链接[1]]。
[1] http://www.xlevel.org.uk/post/How-to-style-a-HTML-Form-button-as-a-Hyperlink-using-CSS.aspx