【发布时间】:2018-01-18 20:24:52
【问题描述】:
在我的控制器中,我有一个需要在单击按钮时执行的操作,我尝试使用 Url.Action 控件,但这不起作用。
到目前为止我得到了什么:
控制器代码:
public ActionResult PendingBlogs()
{
OMSDataContext db = new OMSDataContext();
var query = from a in db.BlogApprovals
select a;
return View(query);
}
[HttpPost]
public ActionResult PendingBlogs(BlogApproval blogap)
{
OMSDataContext db = new OMSDataContext();
Blog b = new Blog
{
BlogTitle = blogap.BlogTitle,
BlogContent = blogap.BlogContent,
UserName = User.Identity.Name,
Date = blogap.Date,
IsApproved = true
};
db.Blogs.InsertOnSubmit(b);
db.SubmitChanges();
return View();
}
视图中的按钮: PendingBlogs.cshtml:
<td>
<input type="button" value="Create" onclick="location.href='@Url.Action("PendingBlogs", "Admin")'" />
</td>
当我点击按钮时,页面只是刷新,但表格没有更新。
【问题讨论】:
-
你需要做一个表单post来点击Http post action方法。您当前的代码进行 GET 调用,该调用将命中第一个操作方法。p
-
想想吧。调试它。你真的应该能够自己解决这个问题。打开浏览器的开发工具。您会看到它正在向您的端点发出 GET 请求。您有 GET 和 POST 操作。所以它可能没有击中你想要的那个。您需要提交表单或使用 AJAX 来执行正确的操作。
-
不接受错误答案!
标签: javascript c# asp.net asp.net-mvc