我正在开发一个asp.net mv3应用程序。
在帮助器类中,我有一个方法,根据他的ID返回一个人的对象
public Person GetPersonByID(string id)
{
// I get the person from a list with the given ID and return it
}
在视图中我需要创建一个可以调用GetPersonByID
function getPerson(id) {
//I need to get the person object by calling the GetPersonByID from the C#
//helper class and put the values Person.FirstName and Person.LastName in
//Textboxes on my page
}
我该怎么做?
可以通过使用和ajax调用来完成吗?
$.ajax({
type:
url:
success:
}
});
非常感谢任何帮助
由于
答案 0 :(得分:11)
Javascript或jQuery就此而言并不知道method
意味着什么。 jQuery不知道C#是什么。 jQuery不知道ASP.NET MVC是什么。 jQuery不知道Person
.NET类的含义。 jQuery并不知道.NET类的含义。
jQuery是一个javascript框架,可用于将AJAX请求发送到服务器端脚本(以及其他许多内容)。
在ASP.NET MVC中,这些服务器端脚本称为控制器操作。在Java中,这些称为servlet。在PHP中 - PHP脚本。等等...
所以你可以编写一个可以使用AJAX查询的控制器动作,它将返回Person
类的JSON序列化实例:
public ActionResult Foo(string id)
{
var person = Something.GetPersonByID(id);
return Json(person, JsonRequestBehavior.AllowGet);
}
然后:
function getPerson(id) {
$.ajax({
url: '@Url.Action("Foo", "SomeController")',
type: 'GET',
// 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);
}
});
}
这显然假设您的Person类具有FirstName
和LastName
属性:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
答案 1 :(得分:1)
当然可以!您需要在服务器端代码中执行的所有操作(特别是在控制器中)将返回Person序列化为JSON对象,如下所示:
[HttpPost] public ActionResult GetPersonByID(string id) { 返回Json(人); }
然后在你的AJAX中,
$.ajax({
type: "POST",
url: form.attr('action'),
data: form.serialize(),
error: function (xhr, status, error) {
//...
},
success: function (result) {
// result.FirstName
}
});