首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在没有回发的div中呈现PartialView

在没有回发的div中呈现PartialView
EN

Stack Overflow用户
提问于 2019-10-09 16:21:54
回答 2查看 342关注 0票数 0

我知道这个问题已经被问了很多次了,但是不管我怎么尝试,我就是不能让它起作用。我有一个接受三个参数并返回部分视图的actionResult。现在,我想要做的是获取三个元素的值,并使用它们在div中重新呈现视图。我尝试使用捕获的数据成功地呈现div,但我不知道jquery做错了什么

在脚本文件中包含了我尝试的最后一件事(尽管在每次尝试之前都有一些调整)

下面是主视图中的RenderAction (可以工作)

代码语言:javascript
运行
复制
<div id="tables">
    @{ Html.RenderAction("_Tables", new { date = "5/10/2019", time = "13:00", seats = "1" });}
</div>

返回所述部分的动作结果

代码语言:javascript
运行
复制
public ActionResult _Tables(string date, string time, int seats)
        {
            return PartialView("_Tables", checkTables(date,time,seats));
        }

最后是脚本(searchTable是字段附近的一个按钮。它们的值被成功捕获,但load不起作用)

代码语言:javascript
运行
复制
$('#searchTable').click(function () {
    var date = document.getElementById("datepicker").value;
    var time = document.getElementById("time").value;
    var seats = document.getElementById("seats").value;
    alert(date);
    //var data = JSON.stringify({
    //    'date': date,
    //    'time': time,
    //    'seats': seats
    //});
    //$.ajax({
    //    type: "POST",
    //    url: '/Home/_Table/',
    //    data: data,
    //    dataType: "html",
    //    success: function (result) { success(result); }

    //});
    //function success(result) {
    //    alert(result);
    //    $("#tables").html(result);
    //    $("#tables").load("#tables")
    //};
    //$.ajax({
    //    url: "/Home/_Table",
    //    type: "GET",
    //    contentType: "application/json; charset=utf-8",
    //    data: data,
    //    success: function (data) {
    //        $('#target').html(data); // loading partialView into div
    //    }
    //});
    //$('#tables').load('@{ Html.RenderAction("_Tables", new { date = "' + date + '", time = "' + time + '", seats = "' + seats + '" });}');
    $('#tables').load('@Url.Action("_Tables","Home")', { 'date': date, 'time': time, 'seats': seats });
    alert(time);
    //alert('@{ Html.RenderAction("_Tables", new { date = "' + date + '", time = "' + time + '", seats = "' + seats + '" });}');
});

我知道问题出在我缺乏理解,但我没有时间研究ajax。我的实习是基于“在最后期限内弄清楚”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-09 16:33:48

假设您有一个包含id表的div

代码语言:javascript
运行
复制
<div id="tables">

您可以使用以下方法,根据您的参数附加部分视图内容,如下所示

代码语言:javascript
运行
复制
        $.ajax({
        url: "/Home/_Tables?date=" + val + "&time="+ val +"&seats="+seats,
        type: "POST",
        cache: false,
        success: function (result) {
            $("#tables").empty();
            $("#tables").html(result);
        },
        error: function () {
            $("#tables").empty();
        }
    });

这将是主视图ajax function.and在控制器中执行以下操作

代码语言:javascript
运行
复制
public ActionResult _Tables(string date, string time,string seats)
{
 // here you can provide model,any viewbag values etc to the partial view and  you will get corresponding html result
   return PartialView("Yourpartial ViewName");
} 
票数 1
EN

Stack Overflow用户

发布于 2019-10-09 16:27:38

我在你的代码中看到一个注释行:

代码语言:javascript
运行
复制
 $("#tables").html(result);

这就是你所需要的!你应该用控制器返回的所有局部视图html填充你的div。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58299871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档