0

这是我的行动:

[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  })%>
4

2 回答 2

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;           //     --- " -----
}
于 2012-05-29T10:09:10.277 回答
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)在文档的开头部分,我们包含了对jQuery 库的引用。我包括来自谷歌 CDN 的参考。您可以将其更改为包含您的本地副本。如果您使用的是 ASP.NET MVC,则默认项目模板在文件夹下有这个Scripts(版本号可能不同)。

2)在文档就绪事件 ( $(function(){..) 中,我们将一些功能绑定到具有 ID 的按钮btnPost。我们正在绑定click事件的功能。因此,每当用户单击该按钮时,就会执行该段代码。

3)我们正在读取文本框的值,并利用 jQuery 的post方法。它将我们传递的数据(我们在这里传递文本框的值)发布到 action 方法。一旦 action 方法返回一些东西给被调用者,它将被存储在 data 变量中。在检查该值之后,您可以做进一步的事情(向用户显示一些消息/重新加载一些内容)。

于 2012-05-28T22:36:07.193 回答