如何在html中调用我的方法?

时间:2016-04-18 10:10:23

标签: c# html asp.net asp.net-mvc wcf

我想在我的mvc视图中调用我的方法。我有一个名为SavePersoon的方法,它必须将更改的数据保存到我的数据库中。这是我的服务代码:

public bool SavePersoon(PersoonModel persoon)
    {
        bool result = true;


        db.Persoon.AddOrUpdate(persoon.GetPoco());


        db.SaveChanges();
        return result;
    }

这是必须按下的按钮,然后上面的代码必须处理工作本身。

观点:

<button type="button" id="btnSaveChanges" class="btn btn-primary">Opslaan</button>

我是否必须使用像<asp:LinkButton...这样的类似物?

3 个答案:

答案 0 :(得分:1)

你可以使用Ajax,像这样的东西

$("#btnSaveChanges").on("click",function(){
   $.ajax({
     url:"/controllerName/SavePersoon",
     data:$("#formName").serialize(),
     cache:false,
     type:"POST",
     error:function(){
        alert("Error");
     }
   });
});

答案 1 :(得分:0)

如果你使用Razor view engaine,你可以让你的方法返回一个动作结果,并使用Html.Actionlink从视图中调用它。

答案 2 :(得分:0)

你可以做两件事:

使用ASP.Net MVC提供的HTML帮助程序来创建一个发布到所需方法的表单,例如控制器“Person”的“保存”:

@using (Html.BeginForm("Save", "Person", FormMethod.Post, new { @class = "form-horizontal" })) {
<div>
     <!-- Your HTML, this could for example be a text field for the person its name -->

     @Html.TextBoxFor(Model => Model.Name, new { @class = "form-control" })

     <input type="submit" class="btn btn-primary" value="Save" />
</div>
}

这会为您创建一个表单标记,例如<form action="person/save" method="post"> ... your HTML & the submit button ... </form>

另一种方法是使用Ajax来防止页面刷新,如上文所述。

$("#btnSaveChanges").on("click",function(){
   $.ajax({
     url: '@Url.Action("Save", "Person")', // Again an MVC HTML Helper to create a URL
     data:$("#Name").val(), // Posts the value of a text field with ID "Name"
     cache:false,
     type:"POST",
     success: funcion(returnValue) {
          // Do something with the result.
     }
     error:function(){
        alert("Error");
     }
   });
});