【问题标题】:How can I pass my LinQ generated data from a controller to my secondary View如何将 LinQ 生成的数据从控制器传递到辅助视图
【发布时间】:2018-07-23 11:23:56
【问题描述】:

我遇到了一个小问题,因为我不确定如何将我在控制器中生成的数据传递给我的视图。

我有一个 View1,在我提交此表单后,字符串进入我的控制器,在那里它们被解析为 DateTime,并使用 LINQ 从我的数据库中获取符合条件的数据。我想把这个生成的数据传递给一个视图,以便我可以写出来。

不确定我的逻辑是不正确还是我遗漏了什么。

我的表单视图:

@{
ViewBag.Title = "ViewMovies";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Select date range for movies</h2>

@using (Html.BeginForm("ViewMovies", "ViewMovies"))
{
<input type="text" name="dateFrom" />
<input type="text" name="dateTo" />
<input type="submit" />
}

我的控制者:

    private ApplicationDbContext _context;

    public ViewMoviesController()
    {
        _context = new ApplicationDbContext();
    }

   [Authorize]
    public ActionResult ViewMvovies()
    {
        return View();
    }


    [Authorize]
    [HttpPost]
    public ActionResult ViewMovies(string dateFrom, string dateTo)
    {

        DateTime fromDate = DateTime.Parse(string.Format(dateFrom)).Date;
        DateTime toDate = DateTime.Parse(string.Format(dateTo)).Date;


        var movies = _context.Movies.ToList().Where(g => g.DateTime > fromDate && g.DateTime < toDate);

        return View("ViewMovies2");

    }

我的第二个观点:

@model IEnumerable<movies.Models.Movies>

@{
ViewBag.Title = "ViewMovies2";
}

<h2>Movie list</h2>

<ul class="movies">
@foreach (var movie in Model)
{
    <li>
        <div class="date">
            <div class="month">
                Month @movie.DateTime.ToString("MMM")
            </div>
            <div class="day">
                Day @movie.DateTime.ToString("d ")
            </div>
        </div>
        <div class="details">
            <span class="category">
                Category @movie.Category.Name
            </span>
        </div>
        <div>
            <span class="cost">
                Cost @movie.Cost
            </span>
        </div>
    </li>
}
</ul>

第二个视图页面很可能是不正确的,它只是我试图写的东西,但它没有工作。

错误: 对象引用未设置为对象的实例。

在线: (第二个视图)

@foreach(模型中的 var 电影)

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

【问题讨论】:

    标签: asp.net asp.net-mvc entity-framework


    【解决方案1】:

    由于错误,您没有将模型传递给查看。

    您可以使用该行传递模型。

    return View("ViewMovies2" ,movies );
    

    【讨论】:

    • 这行得通,我想我不完全理解 Controller-View 是如何工作的,因为当我将鼠标悬停在 View() 方法上时,它没有说明传递模型的任何内容。哦,好吧,至少这不是一个大问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多