嗨,大家好,我是JSon的新手,不太清楚如何传递数据。我正在使用ASP.NET MVC作为我的开发平台。如何在ASP.NET MVC中使用JQuery.Ajax传递多个参数
在查看:
$(document).ready(function() {
$("select#Colors").change(function() {
var photoCategory = $("#Colors > option:selected").attr("value"); // 1st parameter
var userID = $(".userID").attr("value"); // 2nd parameter
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "/FindPhotos/" + photoCategory ,
data: "{}",
dataType: "json",
success: function(data) {
$('#ProductsDiv > div').remove();
if (data.length > 0) {
var options = '';
} .......
});
});
});
在Global.asax中:
routes.MapRoute(
"FindPhotos",
"FindPhotos/{category}",
new { controller = "Clinical", action = "FindPhotosByCategory", category = "" }
);
所以一切工作正常这种方式,因为我只路过一个参数, 'photoCategory',在$ .ajax网址中。我现在的目标是传递第二个参数,它是userID,所以我可以在下面的控制器方法中使用它们。
在控制器:
public JsonResult FindPhotosByCategory(string category, string userID) {
List<PhotoSet> photoset = Repository.GetPhotoSetByUserID(userID);
return new JsonResult
{
Data = (from p in photoset
where p.PhotoCategory == category
select p).ToArray<PhotoSet>()
};
}
有谁知道怎么写$。阿贾克斯()方法,这样我就可以在2个参数到控制器传递?谢谢!
嗨,非常感谢您的帮助。关于在URL中拥有UserID的安全性,我同意你的看法。有没有办法在global.asax中使用路由表来掩盖用户ID?还是有更好的方法隐藏它? – Ari 2010-09-23 06:54:30
它是当前登录用户的ID吗? – andymeadows 2010-09-24 05:20:55