部分视图MVC 3的脚本未加载

时间:2012-06-13 07:07:10

标签: javascript asp.net-mvc-3

我正在使用ASP MVC3,我正在使用部分视图,但问题是无法将脚本加载到同一个视图中。 以下是我试过的代码:

<script type="text/javascript">
    $('#bodytag').load(function () {
        alert('Load was performed.');
    });
</script>
<div class="acc-expand-bkg" id="bodytag">
    <div class="submenu_dropdown clearfix">
        <div class="filter_bar clearfix">
            <div class="left" style="margin-left: 10px;">
                <label style="width: auto; margin-top: 7px;">
                    Standard:</label>
                @Html.DropDownList("teamDetailId", ViewBag.TeamNames as SelectList, null, new { id = "teamDetailId" })
            </div>
        </div>
    </div>
</div>

上面的部分视图没有加载脚本。我尝试使用document.ready它既不适用它。 你能告诉我相同的工作吗?

提前谢谢

2 个答案:

答案 0 :(得分:1)

试试这样:

<script type="text/javascript">
    alert('Load was performed.');
</script>

但通常不应将脚本放在部分视图中。它们不应与标记混合使用。通常脚本属于单独的javascript文件。因此,更好的方法是在单独的文件中定义javascript函数:

function doSomething() {
    alert('Load was performed.');
}

然后在使用AJAX加载局部视图后调用此javascript函数:

$.ajax({
    url: 'some url',
    type: 'post',
    success: function(result) {
        $('#someId').html(result);
        // the partial view was injected into the DOM => now we could
        // invoke our function:
        doSomething();
    }
});

答案 1 :(得分:0)

load函数用于使用ajax从服务器加载内容并更新指定html元素的内部内容。您必须将服务器url作为方法的第一个参数传递。

$('#bodytag').load('ajax/test.html', function() {
  alert('Load was performed.');
});

您必须将脚本块放在html下面。