0

在阅读了这里的其他一些帖子之后,我已经尝试通过单击链接加载部分视图(一旦我通过这个概念验证阶段,文本链接实际上可能会变为图像)。问题是我在点击时被定向到部分视图,而不是在我点击链接的视图中填充 div:

布局:

<script src="@Url.Content("~/scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

风景:

 @Ajax.ActionLink("Item 1 Ajax", "Details", "Portfolio", new { name = "test" }, new AjaxOptions
                        { 
                            HttpMethod = "Post",
                            InsertionMode = InsertionMode.Replace,
                            UpdateTargetId = "row1Content",
                            OnComplete = "portfolioItemLoaded"
                        })

<div id="row1content"></div>

<script type="text/javascript">
        function portfolioItemLoaded() {
            alert("Done");
        }
    </script>

控制器:

public class PortfolioController : Controller
    {
        public ActionResult Details(string name)
        {
            return PartialView(name);
        }
    }

部分(显然命名为 test.cshtml):

<p>Item 1 test</p>

我错过了什么明显的东西吗?这是我第一次尝试在 MVC 中使用 AJAX,所以可能会出现一两个男生错误。

我计划有几个不同的 Ajax 动作链接调用不同的局部视图,因此我将名称传递给控制器​​。

4

1 回答 1

3

代码固定

你想试试这个吗,你有一个更好的控制,如果错误等等...... HTML with helper

@Html.ActionLink("Item 1 Ajax", "Details", "Portfolio", Nothing, New With {.Id = "myLink"})

JavaScript

    <script type="text/javascript">

$(document).ready(function() {

    $('#myLink').click(getIt);

});

function getIt() {
        $.ajax({
            type: "POST",
            url: $(this).attr('href'),
            error: function () { 
                //show error handler
                },
            success: function (r) {
                $('#row1content').html(r);
            }
        });

        return false;
    }

</script>
于 2013-03-14T18:00:24.793 回答