我的视图模型没有填充管理区域内的视图

问题描述

我在 Admin view 中有一个 area,我想用以下代码填充它,但是 当我运行程序时,我的 view 除了空控件外什么都不显示。它返回 string 没有任何问题,但 viewmodels

有问题

我的viewmodel如下:

public class AddQuestionsviewmodel
{
    [required]
    [MinLength(20)]
    public string Question { get; set; }

    [required]
    [MinLength(50)]
    public string Answer { get; set; }

    public string Category { get; set; }
    public int CategoryId { get; set; }
    public SelectList Categories { get; set; }
    public DateTime DateTime { get; set; }
    public bool Isdisplayed { get; set; }
    public int UserId { get; set; }
}

我的view

@model MosahebeClient.Areas.Admin.Models.AddQuestionsviewmodel

@{
    ViewData["Title"] = "Create";
    Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";
}

<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Question" class="control-label"></label>
                <input asp-for="Question" class="form-control" />
                <span asp-validation-for="Question" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Answer" class="control-label"></label>
                <input asp-for="Answer" class="form-control" />
                <span asp-validation-for="Answer" class="text-danger"></span>
            </div>                            
            <div class="form-group">
                <label asp-for="Category" class="control-label"></label>
                <input asp-for="Category" class="form-control" />
                <span asp-validation-for="Category" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="CategoryId" class="control-label"></label>
                <input asp-for="CategoryId" class="form-control" />
                <span asp-validation-for="CategoryId" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="DateTime" class="control-label"></label>
                <input asp-for="DateTime" class="form-control" />
                <span asp-validation-for="DateTime" class="text-danger"></span>
            </div>
            <div class="form-group form-check">
                <label class="form-check-label">
                    <input class="form-check-input" asp-for="Isdisplayed" /> @Html.displayNameFor(model => model.Isdisplayed)
                </label>
            </div>
            <div class="form-group">
                <label asp-for="UserId" class="control-label"></label>
                <input asp-for="UserId" class="form-control" />
                <span asp-validation-for="UserId" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>

<div>

我的Controller

[Area("Admin")] 
public ActionResult Create() 
{
    AddQuestionsviewmodel model = new AddQuestionsviewmodel();
    model.Categories = new SelectList(_categoryRepository.GetAll(),"Id","Name");
    return View(model); 
}

解决方法

是否要向视图添加下拉列表?如果是这样,您可以在视图中添加以下代码。

 //...
 <select asp-items="@Model.Categories">
    <option>Please select a option</option>
 </select>
 //...