ASP.NET MVC JQuery - 用于调用asp.net mvc方法的灵活alghoritm

时间:2009-12-23 09:55:51

标签: jquery asp.net asp.net-mvc

问候, 我想准备一些好的“机器”来从jquery调用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);
    }
}

访客的实施:

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方法将执行的操作如下:

public ActionResult AjaxRequest(CRequest request)
{
    CRequestVisitor visitor = new CRequestVisitor();
    request.AcceptVisitor(visitor);
    return JSON(visitor.Result);//return some result

}

我还发现如何使用jquery

调用asp.net mvc方法
<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对象返回的人员列表?

1 个答案:

答案 0 :(得分:0)

您可以将参数传递给操作方法的参数,方法是将其添加到URL中:

/测试/请求?学校= 1

用guid替换1,guid将被传回。