0
问候, 我想准备一些很好的“机器”从jquery调用asp.net mvc方法。 概念如下:ASP.NET MVC JQuery - 灵活的alghoritm调用asp.net mvc方法
概念是有一个方法每个请求将被调用。通过使用访问者模式,我将能够确定我应该做什么样的操作。
public interface IRequestVisitor
{
void VisitRequest_GetPersons(CRequest_GetPersons request);
void VisitRequest_RemovePerson(CRequest_RemovePerson request);
}
创建一些抽象的要求:
public abstract class CRequest
{
public abstract void AcceptVisitor(IRequestVisitor visitor);
}
和具体要求执行:
public class CRequest_GetPersons: CRequest
{
public CRequest_GetPersons(Guid schoolROWGUID)
{
SchoolROWGUID = schoolROWGUID;
}
public Guid SchoolROWGUID={get;private set;}
public override void AcceptVisitor(IRequestVisitor visitor)
{
visitor.VisitRequest_GetPersons(this);
}
}
和游客的implemetation:
public void CRequestVisitor : IRequestVisitor
{
public CResponse ResponseResult {get;private set;}
public void IRequestVisitor.VisitRequest_GetPersons(CRequest_GetPersons request)
{
//code responsible for getting persons
Result = new CResponse_GetPersons_Success(List<Person>)
}
public void VisitRequest_RemovePerson(CRequest_RemovePerson request)
{
//code responsible for removing person
Result = new CResponse_RemovePerson_Success();
}
}
动作每个JS方法将exe可爱如下:
public ActionResult AjaxRequest(CRequest request)
{
CRequestVisitor visitor = new CRequestVisitor();
request.AcceptVisitor(visitor);
return JSON(visitor.Result);//return some result
}
我还发现如何MVC asp.net方法可以使用jQuery
<script type="text/javascript">
$(document).ready(function() {
$("#GetPerson").click(function() {
$.getJSON("/Test/Request",
function(data){
//what should be here to display all persons ?
//how can i pass guid of school?
});
});
});
});
</script>
我想知道我可以通过当前所选学校的ROWGUID被调用。 我该如何访问作为JSON对象返回的人员列表?
ok ..以及如何传递整个对象(例如Person类型) – 2009-12-23 18:37:54
另外我不能通过guid。预期的参数是CRequest类型。有任何想法吗? – 2009-12-23 18:52:54
您无法在get操作中传递整个对象;您将不得不使用Html.BeginForm将对象的数据发布到服务器。 无论哪种方式,您都无法传递对象,只能传递对象的每个属性值。因此,您可以将所有属性值呈现为HTML元素,并将它们发布到服务器,并重新加载对象(如果您需要的只是查看操作,则重新装入对象)。 所以你不能传递一个人,而是该人的姓名,地址和所有其他人的财产。 – 2009-12-24 18:59:49