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