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 使用asp在具有EF Core的MVC Core应用程序中设置属性?_Asp.net Core_Asp.net Core Mvc_Ef Core 3.1 - Fatal编程技术网

Asp.net core 使用asp在具有EF Core的MVC Core应用程序中设置属性?

Asp.net core 使用asp在具有EF Core的MVC Core应用程序中设置属性?,asp.net-core,asp.net-core-mvc,ef-core-3.1,Asp.net Core,Asp.net Core Mvc,Ef Core 3.1,我从这些文档中了解到:,asp for用于将值从输入元素传输到后端C#类属性,例如: <input type="text" id="wsite" name="wsite" maxlength="11" asp-for="WebsiteName"> 但是,使用console.WriteLine进行测试表明,在提交包含输入的表单后,属性仍然为null。知道我错过了什么吗 编辑:已更新以显

我从这些文档中了解到:,asp for用于将值从输入元素传输到后端C#类属性,例如:

<input type="text" id="wsite" name="wsite" maxlength="11" asp-for="WebsiteName">
但是,使用console.WriteLine进行测试表明,在提交包含输入的表单后,属性仍然为null。知道我错过了什么吗

编辑:已更新以显示我的属性名称和值匹配的asp,并添加我的控制器:

    [HttpPost]
    public IActionResult Post()
    {
        DBCRUD.Initialize(_context);
        return NoContent();
    }
public MyReturnVariable ActionName(ClassName class) {
    Console.WriteLine(class.VarName);
}
    [HttpGet] 
    public IActionResult AddBook()
    {
        BookModel book = new BookModel()
        {
            ID = 1001,
            bookName = "War and Peace",
            Title = "War and Peace"
        };
        return View(book);
    }

asp for标记应与变量名匹配

尝试定义html表单,如:

@model Classname
<form asp-action="ActionName" asp-controller="ControllerName" ...>

<input type="text" asp-for="VarName">

标记帮助器用于模型绑定以及在网页中创建和呈现HTML元素(显示模型属性)

因此,在Web页面(或视图页面)的标题顶部,我们应该添加以下代码来分配模型

@model MVCSample.Models.BookModel
然后,使用以下代码显示属性:

<div class="row">
    <div class="col-md-4">
        <form asp-action="AddBook">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="ID" class="control-label"></label>
                <input asp-for="ID" class="form-control" />
                <span asp-validation-for="ID" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="bookName" class="control-label"></label>
                <input asp-for="bookName" class="form-control" />
                <span asp-validation-for="bookName" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="Title" class="control-label"></label>
                <input asp-for="Title" class="form-control" />
                <span asp-validation-for="Title" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" />
            </div>
        </form>
    </div>
</div>
模型中的代码:

public class BookModel
{
    public int ID { get; set; }
    public string bookName { get; set; } 
    public string Title { get; set; }
}

更多详细信息,您可以查看。

能否向我们显示将接收提交数据的控制器操作?更新了我的原始帖子以显示控制器。您添加的链接似乎是特定于Razor页面的,我没有使用。在你的答案中还有很多多余的代码。谢谢你的回复。编辑:我现在知道模型绑定可以在Razor页面之外使用,所以谢谢!更新了我的原始帖子以显示控制器。在控制器中使用Console.WriteLine也会出现“无法访问代码”错误。
public class BookModel
{
    public int ID { get; set; }
    public string bookName { get; set; } 
    public string Title { get; set; }
}