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);
}
Другие вопросы по тегам