我试图将数据发送到控制器,以便我可以恢复数据,但它似乎甚至无法进入控制器。这是我的阿贾克斯:
$('#clicker').click(function () {
$.ajax({
type: 'GET',
dataType: 'text',
url: '@Url.Action("GetControllerVideo", "Login")',
success: function (ItemId) {
alert(ItemId)
}
});
});
控制器操作(已更新):
private string getVideo(Guid? FileId, string culture)
{
if (null == FileId || !FileId.HasValue)
{
return null;
}
string videoCulture = (culture.ToLower() == "en-us" ? "" : "." + culture);
string model = null;
using (InRollPlus.API.Repositories.FileRepository fir = new FileRepository())
{
//model = fir.Get(FileId.Value);
//model.Location = String.Format(@"{0}/{1}/{2}/video{3}{4}", InRollPlus.Shared.ConstantVals.ConstantItem.AWS_ENVIRONMENT, Shared.Utils.AWSHelpers.AS3.S3Folder.video, benefitTypeId, videoCulture, model.FileNameExtension);
}
return (model);
}
private IEnumerable<dynamic> GetVideoIdByController(string controllerName, string videoCulture)
{
var VideoService = new AppServices.Video.GetVideoById();
IEnumerable<dynamic> videoFileId = VideoService.Execute(controllerName);
return (videoFileId);
}
public string GetControllerVideo(Guid id, string videoCulture)
{
var controllerName = this.GetType().ToString();
dynamic LookupData = GetVideoIdByController(controllerName, videoCulture);
Guid? FileItemId = LookupData.ItemId;
return (getVideo(FileItemId, videoCulture));
}
当我在GetControllerVideo上设置断点并进行调试时,没有任何反应。它似乎从未击中过控制器。我做错了什么?
答案 0 :(得分:0)
将itemId
更改为id
并传递videoCulture
,因为您的操作需要2个名为id
和videoCulture
的参数
$('#clicker').click(function () {
$.ajax({
type: 'GET',
dataType: 'text',
url: '@Url.Action("GetControllerVideo", "Login")',
data: { Id: "FileItemId", videoCulture: "SomethingHere" },
success: function (ItemId) {
alert(ItemId)
}
});
});
答案 1 :(得分:0)
显然,我的应用程序不允许对控制器进行未经身份验证的请求,因此当我点击该控制器时,它只会发送一个返回重定向并给我一个200 ok的状态。我将不得不以不同的方式做事。