Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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
C# 获取部分视图以加载数据_C#_Asp.net Mvc_Model_Controller - Fatal编程技术网

C# 获取部分视图以加载数据

C# 获取部分视图以加载数据,c#,asp.net-mvc,model,controller,C#,Asp.net Mvc,Model,Controller,我有一个返回部分视图(模态)的控制器柱(索引柱)。此局部视图用于从模型加载数据,该模型从其各自的Get-ActionResult方法返回。它忽略了这种方法。有没有办法让它从控制器加载数据 [HttpGet] public ActionResult Index() { return View(); } [HttpPost] [ScriptMethod(ResponseFormat = ResponseFormat.Json)]

我有一个返回部分视图(模态)的控制器柱(索引柱)。此局部视图用于从模型加载数据,该模型从其各自的Get-ActionResult方法返回。它忽略了这种方法。有没有办法让它从控制器加载数据

    [HttpGet]
    public ActionResult Index()
    {

        return View();

    }

    [HttpPost]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public ActionResult Index(string date)
    {
        string[] dateSplit = date.Split(new char[] { 'T' });

        DateTime objDate = Convert.ToDateTime(dateSplit[0]);
        TempData["date"] = objDate;

        return PartialView("~/Views/Home/Modal.cshtml");
    }
这是部分视图的Get方法,当Index post返回部分视图时不会加载该方法

[HttpGet]
public ActionResult Modal()
{
    var content = db.Calendars.ToList();
    if(TempData["date"] != null)
    {
        DateTime objDate = Convert.ToDateTime(TempData["date"]); 
        var contentDate = db.Calendars.Where(x => x.startDate == objDate).ToList();

        return PartialView(contentDate);
    }


    return PartialView(content);



}
以下是视图:

@model IEnumerable<webby.Models.Calendar>



<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="padding:20.5% 15%;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title" id="myModalLabel">Events on @ViewBag.Date</h4>
            </div>
            <div class="modal-body">
                <table>
                    @foreach(var item in Model)
                    { 
                    <tr>
                        <td>
                            @Html.DisplayFor(model => item.events)
                        </td>
                    </tr>
                    <tr>
                        <td>
                            @Html.DisplayFor(model => item.type)
                        </td>
                    </tr>
                    <tr>
                        <td>
                            @Html.DisplayFor(model => item.content)
                        </td>
                    </tr>
                    }


                </table>


            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary">Save changes</button>
            </div>
        </div>
    </div>
</div>

<script>
    $('#myModal').modal();
</script>
@model IEnumerable
&时代;关
@ViewBag.Date上的事件
@foreach(模型中的var项目)
{ 
@DisplayFor(model=>item.events)
@DisplayFor(model=>item.type)
@DisplayFor(model=>item.content)
}
关
保存更改
$('#myModal').modal();
运行应用程序后,post返回部分视图后,部分视图将捕获空错误

返回PartialView(“~/Views/Home/Modal.cshtml”)

上面的行不会调用Modal()操作。它将尝试返回视图(cshtml)。(在本例中,您没有为视图提供模型。)

你可以通过索引(post)的最后一行实现你的目标:

(也就是说,我有点不清楚您到底想要实现什么,所以更详细的描述可能有助于获得完整的解决方案。)

另外,我不知道ScriptMethod属性是什么,但我很确定您不希望它装饰您的post操作

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

不能有模态动作。当你打电话的时候

return PartialView("~/Views/Home/Modal.cshtml");
它将简单地用你传递给它的任何东西来打开视图(正如所写的那样,这是绝对没有的)

您要做的是输入代码:

var content = db.Calendars.ToList();
if(TempData["date"] != null)
{
    DateTime objDate = Convert.ToDateTime(TempData["date"]); 
    content = db.Calendars.Where(x => x.startDate == objDate).ToList();
}
在HttpPost索引操作中,并将模型按如下方式传递给模态:

return PartialView("~/Views/Home/Modal.cshtml", content);
return PartialView("~/Views/Home/Modal.cshtml", content);