我想在我的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...
这样的类似物?
答案 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");
}
});
});