在ASP.NET MVC中:从Razor视图调用Controller Action Method的所有可能的方法

我知道这是一个非常基本的问题。

但是,你能告诉我所有可能的select
从剃刀视图调用一个控制动作方法[通常任何服务器端例程]
在哪些情况下最适合用于哪些情况

谢谢。

方法1:使用jQuery Ajax获取调用( 部分页面更新 )。

适用于需要从数据库中检索jSon数据的情况。

控制器的操作方法

[HttpGet] public ActionResult Foo(string id) { var person = Something.GetPersonByID(id); return Json(person, JsonRequestBehavior.AllowGet); } 

jquery GET

 function getPerson(id) { $.ajax({ url: '@Url.Action("Foo", "SomeController")', type: 'GET', dataType: 'json', // we set cache: false because GET requests are often cached by browsers // IE is particularly aggressive in that respect cache: false, data: { id: id }, success: function(person) { $('#FirstName').val(person.FirstName); $('#LastName').val(person.LastName); } }); } 

人员类

 public class Person { public string FirstName { get; set; } public string LastName { get; set; } } 

方法2:使用jQuery Ajax Post调用( 部分页面更新 )。

适合于需要将部分页面发布数据写入数据库的情况。

Post方法也和上面一样,只是将Action方法上的[HttpPost]replace为jquery方法的post

有关更多信息,请在此处查看将JSON数据发布到MVC控制器

方法3:作为表单发布scheme( 整页更新 )。

适合于需要将数据保存或更新到数据库的情况。

视图

 @using (Html.BeginForm("SaveData","ControllerName", FormMethod.Post)) { @Html.TextBoxFor(model => m.Text) <input type="submit" value="Save" /> } 

行动方法

 [HttpPost] public ActionResult SaveData(FormCollection form) { // Get movie to update return View(); } 

方法4:作为窗体获取scheme( 整页更新 )。

适合于当你需要从数据库中获取数据

Get方法也像上面一样,只需将Action方法的[HttpGet]和View的表单方法FormMethod.GetFormMethod.Get

我希望这对你有帮助。