Ajax для назначения src для Iframe динамически в MVC3
Привет, я в основном новичок в Ajax, и мне тяжело писать это..
Я хочу присвоить значение src для Iframe, который выбирается из базы данных
Стол ХоббиМастерс
HobbyName
HobbyUrl
Я пишу функцию и получаю URL из таблицы сейчас, когда я нажимаю на Hobbyname, которая отображается как ссылка, я хочу, чтобы этот URL был загружен внутри Iframe.
Первоначально я написал JavaScript:
<script type="text/javascript">
$(document).ready(function () {
$('a').click(function (e) {
e.preventDefault();
$('iframe').attr('src', "Dancing");
});
}); </script>
Но здесь src статичен и через javascript я не могу назначить извлеченное значение из базы данных атрибуту src
Вот и подумал написать Аякс..
Я пробовал что-то, но это не полностью. Пожалуйста, помогите мне с этим:
<script type="text/javascript">
$(document).ready(function () {
$('a').click(function (e) {
e.preventDefault();
var filename = $(this).text();
var Hobbyurl = '@Url.Action("FetchUrlByHobbyName")';
$.ajax({
type: "POST",
url: Hobbyurl ,
data: { data: filename },
success: function (returndata) {
Here i want to assign the fetched src from function FetchUrlByHobbyName to Iframe src
$('iframe').attr('src', filename);
}
});
});
Функция внутри контроллера:
[HttpPost]
public ActionResult FetchUrlByHobbyName(string Hobbyurl)
{
HobbyMasters hobbymaster = new HobbyHomeService().FetchHobbyMasterByHobbyName(Hobbyurl);
string url=hobbymaster.InformationUrl;
if (HttpContext.Request.IsAjaxRequest())
return Json(new{src=url});
return View();
}
1 ответ
Если @Url.Action("FetchUrlByHobbyName")
возвращает URL хобби, вы можете сделать
<script type="text/javascript">
$(document).ready(function () {
$('a').click(function (e) {
e.preventDefault();
var filename = $(this).text();
var Hobbyurl = '@Url.Action("FetchUrlByHobbyName")';
$.ajax({
type: "POST",
url: Hobbyurl ,
data: { data: filename },
success: function (returndata) {
Here i want to assign the fetched src from function FetchUrlByHobbyName to Iframe src
$('iframe').attr('src', returndata);
}
});
});
Лучший способ - вернуть данные, связанные с json, и получить URL-адрес из объекта json.
success: function (returndata) {
jsonObj = jQuery.parseJSON( returndata)
$('iframe').attr('src', jsonObj.url);
}