如何解决无法在剃刀页面上获取查询元素
我的页面上有两个查询选择,一个用于客户,另一个用于供应商。为什么我看不到任何元素?
== c# 代码 ==
== 在 Razor 页面==
很遗憾我看不到任何项目。有什么想法吗?
我的 C# 代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using Microsoft.AspNetCore.Mvc.Rendering;
using WorkCollaboration.Data;
using WorkCollaboration.Models;
namespace WorkCollaboration.Pages.Contacts
{
public class CreateModel : PageModel
{
private readonly WorkCollaboration.Data.WorkCollaborationContext _context;
public CreateModel(WorkCollaboration.Data.WorkCollaborationContext context)
{
_context = context;
}
public async Task<IActionResult> OnGetAsync()
{
CustomerDropDowndisp = await _context.CustomerDropDown.ToListAsync(); // Added for DropDown
supplierDropDowndisp = await _context.supplierDropDown.ToListAsync(); // Added for DropDown
return Page();
}
[BindProperty]
public Contact Contact { get; set; }
public DayOfWeek DayOfWeek { get; set; }
public IEnumerable<CustomerDropDown> CustomerDropDowndisp { get; set; }
public IEnumerable<supplierDropDown> supplierDropDowndisp { get; set; }
// To protect from overposting attacks,enable the specific properties you want to bind to,for
// more details,see https://aka.ms/RazorPagesCRUD.
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.Contact.Add(Contact);
await _context.SaveChangesAsync();
return RedirectToPage("/ContactsOverview/Index");
}
}
}
这里是我的 Razor 页面 Html
@page
@model WorkCollaboration.Pages.Contacts.CreateModel
@{
ViewData["Title"] = "Create";
ViewData["RandomId"] = Guid.NewGuid().GetHashCode();
}
<h1>Create</h1>
<h4>Contact</h4>
<p>
<a asp-page="/ContactsOverview/Index">Back to Index</a>
</p>
<hr />
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Contact.ContactId" class="control-label"></label>
<input asp-for="Contact.ContactId" value='@ViewData["RandomId"]' readonly="readonly" class="form-control" />
<span asp-validation-for="Contact.ContactId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.LastName" class="control-label"></label>
<input asp-for="Contact.LastName" class="form-control" />
<span asp-validation-for="Contact.LastName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.FirstName" class="control-label"></label>
<input asp-for="Contact.FirstName" class="form-control" />
<span asp-validation-for="Contact.FirstName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.CustomerId" class="control-label"></label>
<input asp-for="Contact.CustomerId" class="form-control" />
<span asp-validation-for="Contact.CustomerId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.CustomerId" class="control-label"></label>
<select id="CusId" aps-items="@(new SelectList(Model.CustomerDropDowndisp,"CusId","CusName"))">
<option value="" selected disabled> -- Select Customer--</option>>
</select>
<span asp-validation-for="Contact.CustomerId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.supplierId" class="control-label"></label>
<input asp-for="Contact.supplierId" class="form-control" />
<span asp-validation-for="Contact.supplierId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.supplierId" class="control-label"></label>
<select id="SupId" aps-items="@(new SelectList(Model.supplierDropDowndisp,"SupId","SupName"))">
<option value="" selected disabled> -- Select supplier--</option>>
</select>
<span asp-validation-for="Contact.supplierId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.PrivateStreet" class="control-label"></label>
<input asp-for="Contact.PrivateStreet" class="form-control" />
<span asp-validation-for="Contact.PrivateStreet" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.PrivateStreetNo" class="control-label"></label>
<input asp-for="Contact.PrivateStreetNo" class="form-control" />
<span asp-validation-for="Contact.PrivateStreetNo" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.PrivateStreetAdditionalInfo" class="control-label"></label>
<input asp-for="Contact.PrivateStreetAdditionalInfo" class="form-control" />
<span asp-validation-for="Contact.PrivateStreetAdditionalInfo" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.PrivateZip" class="control-label"></label>
<input asp-for="Contact.PrivateZip" class="form-control" />
<span asp-validation-for="Contact.PrivateZip" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.Privatetown" class="control-label"></label>
<input asp-for="Contact.Privatetown" class="form-control" />
<span asp-validation-for="Contact.Privatetown" class="text-danger"></span>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Contact.PrivateCountry,htmlAttributes: new { @class = "form-group" })
<div class="form-group">
@Html.DropDownListFor(model => model.Contact.PrivateCountry,new List<SelectListItem>
{
new SelectListItem {Text = "CH",Value = "CH",Selected = true },new SelectListItem {Text = "D",Value = "D" },new SelectListItem {Text = "FL",Value = "FL" },},new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Contact.PrivateCountry,"",new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<label asp-for="Contact.PrivatePhone" class="control-label"></label>
<input asp-for="Contact.PrivatePhone" class="form-control" />
<span asp-validation-for="Contact.PrivatePhone" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.BusinessPhone" class="control-label"></label>
<input asp-for="Contact.BusinessPhone" class="form-control" />
<span asp-validation-for="Contact.BusinessPhone" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.MobilePhone" class="control-label"></label>
<input asp-for="Contact.MobilePhone" class="form-control" />
<span asp-validation-for="Contact.MobilePhone" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Contact.Mail" class="control-label"></label>
<input asp-for="Contact.Mail" class="form-control" />
<span asp-validation-for="Contact.Mail" class="text-danger"></span>
</div>
<select asp-for="DayOfWeek" asp-items="Html.GetEnumSelectList<DayOfWeek>()">
<option value="">Choose a day</option>
</select>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
<a href="/ContactsOverview/Index" class="btn btn-primary">Back to List</a>
</div>
</form>
</div>
</div>
解决方法
在为CustomerDropDownDisp
设置数据的那一行打断点。这一定是你的数据库没有数据造成的。你可以按照下面的步骤来检查。
您可以查看数据库是否不包含 CustomerDropDownDisp
、count=0
的任何数据并且剃刀不显示元素:
如果它包含 CustomerDropDownDisp
的数据,则选择列表可以成功呈现:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。