Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Asp.net core .Net Core Razor页面-具有多个对象的局部视图_Asp.net Core_Razor Pages - Fatal编程技术网

Asp.net core .Net Core Razor页面-具有多个对象的局部视图

Asp.net core .Net Core Razor页面-具有多个对象的局部视图,asp.net-core,razor-pages,Asp.net Core,Razor Pages,我对.NETCore、EFCore和Razor页面都是新手 我有一个表单,它使用一个页面的帖子。页面模型有三个绑定属性,其中两个是EF模型(我使用继承只绑定安全属性),一个只是字符串: [BindProperty] public Models.BaseEvent _Event { get; set; } [BindProperty] [Display(Name = "Venue Search")] public string _VenueSearch { get; set; }

我对.NETCore、EFCore和Razor页面都是新手

我有一个表单,它使用一个页面的帖子。页面模型有三个绑定属性,其中两个是EF模型(我使用继承只绑定安全属性),一个只是字符串:

 [BindProperty]
 public Models.BaseEvent _Event { get; set; }

 [BindProperty]
 [Display(Name = "Venue Search")]
 public string _VenueSearch { get; set; }

 [BindProperty]
 public Models.BaseVenue _Venue { get; set; }
然后我有一个表单,用于创建一个事件。添加有关活动的信息时,他们可以使用场馆搜索选择现有的场馆,也可以添加新的场馆_只有在出现错误时,VenueSearch才会自动重新填充表单。我使用jquery在字段上执行自动完成

然而,我试图把表格变成一个部分,但我不知道如何通过活动、搜索和场地

<form method="post">
            <input id="venueid" type="hidden" asp-for="_Venue.VenueID" />
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="_Event.Name" class="control-label"></label>
                <input asp-for="_Event.Name" class="form-control" />
                <span asp-validation-for="_Event.Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Event.StartDateTime" class="control-label"></label>
                <input asp-for="_Event.StartDateTime" class="form-control" />
                <span asp-validation-for="_Event.StartDateTime" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Event.EndDateTime" class="control-label"></label>
                <input asp-for="_Event.EndDateTime" class="form-control" />
                <span asp-validation-for="_Event.EndDateTime" class="text-danger"></span>
            </div>
            <hr />
            <div id="search-container" class="form-group">
                <label asp-for="_VenueSearch" class="control-label"></label>
                <input id="venue" asp-for="_VenueSearch" class="form-control" />
                <span asp-validation-for="_VenueSearch" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Venue.Name" class="control-label">Venue Name</label>
                <input id="venue-name" asp-for="_Venue.Name" class="form-control" />
                <span asp-validation-for="_Venue.Name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Venue.Address" class="control-label">Venue Address</label>
                <input id="venue-address" asp-for="_Venue.Address" class="form-control" />
                <span asp-validation-for="_Venue.Address" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Venue.City" class="control-label">Venue City</label>
                <input id="venue-city" asp-for="_Venue.City" class="form-control" />
                <span asp-validation-for="_Venue.City" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Venue.PostCode" class="control-label">Venue Postcode</label>
                <input id="venue-postcode" asp-for="_Venue.PostCode" class="form-control" />
                <span asp-validation-for="_Venue.PostCode" class="text-danger"></span>
            </div>
            <hr />
            <div class="form-group">
                <label asp-for="_Event.Description" class="control-label"></label>
                <textarea asp-for="_Event.Description" class="form-control"></textarea>
                <span asp-validation-for="_Event.Description" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="_Event.AgeRestriction" class="control-label"></label>
                <input asp-for="_Event.AgeRestriction" class="form-control" />
                <span asp-validation-for="_Event.AgeRestriction" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create Event" class="btn btn-primary" />
            </div>
        </form>


场馆名称 地点地址 场馆城市 场馆邮政编码
我该如何把它放在一个部分中,这样我仍然可以访问两个模型和字符串(_Event、_Venue和_VenueSearch)。我没有包含javascript自动完成代码,因为它与本文无关

我想使用分部,因为我的两个创建/编辑页面将使用相同的表单,所以我看不到重复的点

提前谢谢你的帮助


Matt

您可以创建视图模型并包含从数据库查询的对象,加载局部视图时,直接将视图模型传递给局部视图:

@await Html.PartialAsync("viewName", model:Model.YourModel)

谢谢你的回答。这正是我想我必须要做的。但是制作一个视图模型,这样我就可以将对象传递给部分视图,这对我来说简直是疯了。遗憾的是,部分视图不能访问与标准页面视图相同的数据。实际上,你不能从cs代码中加载部分视图:。这样你就不必重新加载若要创建视图模型,请直接更正EF模型中的数据,最后将数据传递到局部视图。