我刚刚开始学习MVC,有很多困惑。
当我们在ASP.NET WebForm项目中用jQuery调用服务器端函数时,该方法必须是静态的,并且必须使用WebMethod属性进行修饰。那么我想知道,在MVC的情况下是否适用相同的规则。
我找到了相关代码,但还没有测试它。
客户端方法
function getTradeContribs(id,pfid, nodedates) {
var data = {};
data.portfolioId = pfid;
data.nodedates = nodedates;
$.ajax({
type: "POST",
url: "/Portfolios/getTradeContribs/"+id,
dataType: "json",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: parseTradeContribs,
error: function (error) {
alert("failed in opening XML file !!!");
}
});
}
服务器端方法
public string getTradeContribs(int id,string portfolioId, string nodedates)
{
string jsonTest = @" {""nodedates"": ""date"":""01/01/2012""}";
return jsonTest;
}
从上面的代码中我有一些问题 1)MVC中有多少种类型的控制器方法? 2)url:"/Portfolios/getTradeContribs",这是什么样的URL。 Portfolios是控制器名称,getTradeContribs是操作名称吗? 如果不是,那么getTradeContribs是什么类型的方法。
3)为什么getTradeContribs没有返回ActionResult? 4)ActionResult的意义是什么? 5)为什么id作为查询字符串传递,而其余数据作为JSON传递。 它如何工作?
请讨论这些问题,因为我是MVC新手。