C# 为什么asp.net MVC中的ActionResult方法参数为空?

C# 为什么asp.net MVC中的ActionResult方法参数为空?,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试向ActionResult方法发送表单,但它始终为空事实上,我得到的错误值不能为null。但我不知道为什么我会出错 这里是ActionResultcode和我的观点 public class VocabularyController : Controller { private VocabContext _context; public VocabularyController() { _context = new VocabContext()

我正在尝试向
ActionResult
方法发送表单,但它始终为空
事实上,我得到的错误值不能为null。但我不知道为什么我会出错

这里是
ActionResult
code和我的观点

public class VocabularyController : Controller
{
    private VocabContext _context;

    public VocabularyController()
    {
        _context = new VocabContext();
    }
    // GET: Vocabulary
    [Route("New")]
    public ActionResult New()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Save(Vocabulary word)
    {

        if (ModelState.IsValid)
        {
            _context.Vocabularies.Add(word);
            _context.SaveChanges();
        }

        return RedirectToAction("dashboard", "Home");
    }



}
==============================

@model EnglishTest.Models.Vocabulary

@{
    ViewBag.Title = "New";
}

<div class="row">
    <div class="col-lg-12">
        <div class="element-wrapper">
            <h6 class="element-header">New Word Form</h6>
            <div class="element-box">
                @using (Html.BeginForm("Save", "Vocabulary", FormMethod.Post))
                {
                <div class="form-group">
                    @Html.LabelFor(m => m.Word)
                    @Html.TextAreaFor(m => m.Word, new { @class = "form-control", @placeholder = "Word" })
                    @Html.ValidationMessageFor(m => m.Word)
                </div>
                <div class="row">
                    <div class="col-sm-12">
                        <div class="form-group">
                            @Html.LabelFor(m => m.Defination)
                            @Html.TextAreaFor(m => m.Defination, new { @class = "form-control", @placeholder = "Definition" })
                            @Html.ValidationMessageFor(m => m.Defination)
                        </div>

                    </div>
                </div>
                <div class="row">
                    <div class="col-sm-12">
                        <div class="form-group">
                            @Html.LabelFor(m => m.Synonym)
                            @Html.TextAreaFor(m => m.Synonym, new { @class = "form-control", @placeholder = "Synonym" })
                            @Html.ValidationMessageFor(m => m.Synonym)
                        </div>
                    </div>
                </div>

                <div class="row">
                    <div class="col-sm-12">
                        <div class="form-group">
                            @Html.LabelFor(m => m.PersianTranslate)
                            @Html.TextAreaFor(m => m.PersianTranslate, new { @class = "form-control", @placeholder = "Persian Translation" })
                            @Html.ValidationMessageFor(m => m.PersianTranslate)
                        </div>
                    </div>
                </div>

                <div class="row">
                    <div class="col-sm-12">
                        <div class="form-group">
                            @Html.LabelFor(m => m.Examples)
                            @Html.TextAreaFor(m => m.Examples, new { @class = "form-control", @placeholder = "Examples" })
                            @Html.ValidationMessageFor(m => m.Examples)
                        </div>
                    </div>
                </div>
                @Html.HiddenFor(m => m.Id)
                <div class="form-buttons-w"><button class="btn btn-primary" type="submit"> Save</button></div>
            }
        </div>
    </div>
    </div>
</div></div>
   public class Vocabulary
    {

        public int Id { get; set; }
        [Required]
        public string Word { get; set; }
        [Required]
        public string Defination { get; set; }
        [Required]
        public string Synonym { get; set; }
        [Required]
        public string PersianTranslate { get; set; }
        [Required]
        public string Examples { get; set; }
    }

指定表单的帖子:

@using (Html.BeginForm("Save", "Vocabulary", FormMethod.Post))
此外,不需要第二个
@

Html.BeginForm("Save", "Vocabulary", FormMethod.Post)

我将输入参数更改为我的模型名,效果很好

public ActionResult Save(Vocabulary vocabulary)

你的控制器是什么name@HakamFostok,这是词汇表。您是否检查了id的值???@serior\s我没有检查。因为这是主键,所以它不能为null,即使您将其设置为可为null。还要检查您的操作方法是否为post/get?因为您正在发送一个post请求,但是.net mvc表单内置了get请求。它不起作用。请发布您的整个cshtml代码。我更新了我的cshtml代码。最后您有一个额外的
}
。当我复制并粘贴到这里时,这是我的问题。这里没有我的代码。