Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 局部视图未正确更新_Vb.net_Asp.net Mvc 3_Asp.net Mvc Partialview - Fatal编程技术网

Vb.net 局部视图未正确更新

Vb.net 局部视图未正确更新,vb.net,asp.net-mvc-3,asp.net-mvc-partialview,Vb.net,Asp.net Mvc 3,Asp.net Mvc Partialview,我相信我应该让你知道,我是一个VB.Net开发人员,花了两年时间试图学习MVC3。这并不容易。我试图将现有应用程序转换为MVC3,但遇到了问题。我的工作场所要求是带有MVC3和VB.Net的Visual Studio 2010 我有一个PartialView,当我在PartialView中单击表上的超链接时,应该进行新的搜索并显示搜索结果。这是有效的。但是,PartialView将被渲染为完整视图 我有一个带有搜索文本框的视图。底部的AccountTable将使用上述PartialView显示搜

我相信我应该让你知道,我是一个VB.Net开发人员,花了两年时间试图学习MVC3。这并不容易。我试图将现有应用程序转换为MVC3,但遇到了问题。我的工作场所要求是带有MVC3和VB.Net的Visual Studio 2010

我有一个PartialView,当我在PartialView中单击表上的超链接时,应该进行新的搜索并显示搜索结果。这是有效的。但是,PartialView将被渲染为完整视图

我有一个带有搜索文本框的视图。底部的AccountTable将使用上述PartialView显示搜索结果。这对于在文本框中启动的搜索很有效。当我使用PartialView表的超链接开始搜索时,问题就开始了

查看-Index.vbhtml:

<div style="width: 400px; margin-left: auto; margin-right: auto; margin-top: 20px;">
    <p>
    @Using (Ajax.BeginForm("search", "Home", New AjaxOptions With { _
        .HttpMethod = "GET", _
        .InsertionMode = InsertionMode.Replace, _
        .UpdateTargetId = "AccountTable"}))
        @<text>Account Number: </text>@Html.TextBox("SearchField")
    End Using
    </p>
</div>
<div id="AccountTable" class="searchPage" style="width: 400px; margin-left: auto;
    margin-right: auto; margin-top: 20px;"></div>
我已经对此进行了研究,但没有找到任何帮助。My_Layouts.vbhtml文件中已包含以下脚本:

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

我发现有人建议添加一个ajax/json调用。但是,我在计算如何从表中的linkbutton获取搜索数据以作为搜索参数传入ajax/json代码时遇到了问题

有什么建议吗

以下是一些显示实际问题的屏幕截图:

初步看法:

使用PartialView查看-超链接位于Account列中

单击超链接后。搜索文本框不见了。请注意,所有css也丢失了


问题是您在哪里使用@Url.Action作为您的超链接的href。这会导致页面转到该视图,无论该视图是否为部分视图

我的建议是改用jQuery更新表。当用户单击搜索按钮时,执行Ajax请求并返回部分视图

这有一个从视图到控制器的非常基本的ajax调用


要了解更多有关如何更新该局部视图的信息,请访问另一个链接

以下是我所做的工作:

我将name属性添加到anchor标记中,以等于我需要传入的数据,并将href更改为#

它是有效的。现在partialview已正确更新

Function Index() As ActionResult
    Return View()
End Function

Function Search(ByVal SearchField As String) As ActionResult
    Dim acctList As New AccountList
    acctList = Repository.GetAccount(SearchField)
    If acctList IsNot Nothing Then
        ViewData.Add("MainName", acctList(0).Name)
        ViewData.Add("MainSSN", acctList(0).SSN)
        acctList.RemoveAt(0)
        Model = acctList
    Else
        Model = Nothing
    End If
    Return PartialView("Search", Model)
End Function
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
<a name="@item.AccountNumber" class="hlSearch" href="#">@item.AccountNumber</a>
$('.lbSearch').click(function() {
$.ajax({
    cache: false,
    type: "GET",
    url: "@(Url.Action("search", "Home"))",
    data: { SearchField: $(this).attr('name')},
    success: function (data) {
        $("#AccountTable").html(data);
    }
});
});