这是我的行动:
[HttpPost]
public ActionResult AddDispo(string idv, string dd, string df)
{
try
{
Models.indisponible model = new Models.indisponible();
model.Dd = Convert.ToDateTime(dd);
model.Df = Convert.ToDateTime(df);
model.idv = idv;
entity.indisponible.AddObject(model);
entity.SaveChanges();
TempData["Resultat"] = "La nouvelle date a été ajouté courrectement";
return RedirectToAction("Dispo", "Agence", new { idv = idv});
}
catch (Exception)
{
TempData["Resultat"] = "Une erreur se produiset Vielliez ressaiyer";
return RedirectToAction("Dispo", "Agence", new { idv = idv});
}
}
我想在不使用Html.beginForm
的情况下调用此操作,我已经进行了此次试用,但它没有奏效:
<%: Html.Action("Accepter", "Adddispo", new { id = Model.idv, dd = Model.Dd, df = Model.Df })%>
答案 0 :(得分:0)
您的Action方法类型为 HTTPOST 。所以你需要一个表单发布来调用该动作。如果您不希望在视图中使用表单标记,则可以使用jQuery进行POST。
以下示例在用户点击ID为btnPost
的按钮时发布帖子。
HTML(您的观点内容)
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
</head>
<body>
Name : <input type="text" id="txtName" /> <br/>
Age: <input type="text" id="txtAge" /> <br/>
Place : <input type="text" id="txtPlace" /> <br/>
<input type="button" value="Save" id="btnPost" />
<script type="text/javascript">
$(function(){
$("#btnPost").click(function(e){
e.preventDefault(); // preventing the default button submit behaviour
var name=$("#txtName").val(); //reading the text box values
var age=$("#txtAge").val();
var place=$("#txtPlace").val();
$.post("YourController/AddDispo", { idv :name, dd : age, df=place} ,function(data) {
//Do whatever with the the response. may be an alert
alert(data);
});
});
});
</script>
它的作用
1)在文档的head部分,我们添加了对jQuery library的引用。我收录了谷歌CDN的参考资料。您可以将其更改为包含本地副本。如果您正在使用ASP.NET MVC,则默认项目模板会在Scripts
文件夹下(版本号可能不同)。
2)在文档ready事件($(function(){..
)中,我们将某些功能绑定到ID为btnPost
的按钮。我们绑定了click
事件的功能。因此,只要用户点击该按钮,就会执行该段代码。
3)我们正在阅读文本框值,并使用jQuery的post方法。它会将我们传递的数据(我们将文本框的值传递给)传递给action方法。一旦action方法将某些东西返回给calle,它就会存储在data变量中。在检查了它的值之后,你可以做更多事情(向用户显示一些消息/重新加载一些内容)。
答案 1 :(得分:0)
动作链接将始终发送“GET”请求。从控制器操作中删除[HttpPost]属性,或使用shyju建议的类似技术。动作链接有一些Windows事件的问题,所以你应该坚持使用程式化的按钮,除非特别需要锚点。样例样式将是:
#mybutton input[type=submit] {
background: none;
padding: 0px;
font-family: arial;
font-size: 1em;
cursor: pointer; // to make it look like link
border: none; // --- " -----
}