Я хочу загрузить Partial View через jQuery и загрузить его на страницу. В частичном представлении есть <img>
.MVC JQuery Load Partial с изображением потенциально опасный Запрос
Вот PartialView:
@model NBAPicks.Models.PickedTeamLogoViewModel
@ViewHelpers.GetTeamLogoForPick(Model.TeamAbbr, Model.GameID, Model.UserName)
А вот помощник код:
public static MvcHtmlString GetTeamLogoForPick(string abbr, int gameID, string userName)
{
var imagePath = ImageUrl("Team Logos", abbr + ".gif");
var html = "<img src=\"" + imagePath + "\" id=\"" + gameID.ToString() + "_" + userName + "\" class=\"pick-logo\" />";
return new MvcHtmlString(html);
}
Где ImageUrl является:
private static string ImageUrl(string subFolder, string fileName)
{
return VirtualPathUtility.ToAbsolute(ImagesDir + "\\" + subFolder + "\\" + fileName);
}
Вот метод управления:
[Authorize]
public JsonResult GetPickedTeamLogo(string teamAbbr, int gameID, string userName)
{
var viewModel = new PickedTeamLogoViewModel()
{
TeamAbbr = teamAbbr,
GameID = gameID,
UserName = userName
};
return Json(_partialStringRenderer.RenderRazorViewToString(this, "_PickedTeamLogo", viewModel), JsonRequestBehavior.AllowGet);
}
А вот где я загрузить его в JQuery:
setTimeout(function() {
var ajaxRequest = $.ajax({
type: "GET",
url: '@Html.Raw(Url.Content("~/Admin/GetPickedTeamLogo/?teamAbbr="))' + teamAbbr + '&gameID=' + gameID + '&userName=' + userName,
cache: false,
data: { teamAbbr: teamAbbr, gameID: gameID, userName: userName },
async: false,
dataType: 'json',
error: function() {
console.log('failure');
alert('AJAX fail - this is a bug, report it!');
},
success: function (result) {
console.log('AJAX call returned successfully');
console.log('result: ' + result);
$("#" + userName + "_logo").load(result); // HERE!!!
}
});
}, 0);
Теперь через выход консоли HTML, возвращенного выглядит хорошо и правильно:
<img src="/Content/Team Logos/MIA.gif" id="1238_tim" class="pick-logo" />
Но консольные сообщения об этой ошибке, когда я пытаюсь и загрузить HTML:
GET http://localhost:53441/%3Cimg 400 (Bad Request)
Я могу просверлить отсюда вниз в эту ошибку:
A potentially dangerous Request.Path value was detected from the client (<).
Зачем возникает эта ошибка и как ее решить?
Ах, тот же результат, к сожалению. – Hanshan
Выводит ли она ту же ошибку после добавления фильтра в действие GetPickedTeamLogo? –
Да, то же самое. – Hanshan