C# 发布ajax表单MVC页面后丢失模型

C# 发布ajax表单MVC页面后丢失模型,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我对Razor页面的理解非常陌生,在发布表单后检索模型数据时遇到了问题。它能够在页面加载时检索数据,但一旦我发布表单,模型就为空。这是一个大型公司项目的一部分,因此我很难发布所有数据,但下面是相关的代码片段: @inherits ViewPage<ViewModels.User.SignUp.VerifyActivationCodeModel> @using (Ajax.BeginForm(nameof(SignUpController.VerifyActivationCode),

我对Razor页面的理解非常陌生,在发布表单后检索模型数据时遇到了问题。它能够在页面加载时检索数据,但一旦我发布表单,模型就为空。这是一个大型公司项目的一部分,因此我很难发布所有数据,但下面是相关的代码片段:

@inherits ViewPage<ViewModels.User.SignUp.VerifyActivationCodeModel>

@using (Ajax.BeginForm(nameof(SignUpController.VerifyActivationCode),
    SignUpController.ControllerName, null, new AjaxOptions
    {
        HttpMethod = "POST",
        OnSuccess = "VerifyActivationCodePage.OnSuccess",
        OnFailure = "ErrorHelper.HandleError"
    }, new { id = "verifyActivationCodeForm", autocomplete = "off" }))
{
    @Html.AntiForgeryToken()
    <div class="">
        <div class="">
            <h3 class="">
                @Html.Raw(Model.Title)
            </h3>
        </div>
    </div>
    <div class="">
        <div class="">
            <fieldset class="form-row">
                @Html.TextBoxSensitiveFor(m => m.ActivationCode,
                    new
                    {
                       placeholder = string.Format(ResourceManager.GetResource("VerifyToken"), Model.Token),
                       @class = "in-text",
                       maxlength = "100"
                    })

 // rest of form ...
@继承ViewPage
@使用(Ajax.BeginForm(nameof)(SignUpController.VerifyActivationCode),
SignUpController.ControllerName,null,新AjaxOptions
{
HttpMethod=“POST”,
OnSuccess=“verifyActivationDepage.OnSuccess”,
OnFailure=“ErrorHelper.HandleError”
},新的{id=“verifyactivationdeform”,autocomplete=“off”})
{
@Html.AntiForgeryToken()
@Html.Raw(Model.Title)
@Html.TextBoxSensitiveFor(m=>m.ActivationCode,
新的
{
占位符=string.Format(ResourceManager.GetResource(“VerifyToken”)、Model.Token),
@class=“在文本中”,
maxlength=“100”
})
//剩下的部分。。。
当我发布此表单时,我试图填充为占位符的Model.Token为“Null”,而在发布之前,它会从资源中成功填充


有人能提供帮助吗?谢谢。为了将数据绑定回您的操作,您应该在表单中提供这些数据

对于不希望在表单上显示的字段,可以使用:

@Html.HiddenFor(m => m.FieldName)

通过这种方式,它们将绑定回您的操作,但不会显示在您的表单上。

在表单中添加@Html.HiddenFor(m=>m.Token),看看是否有帮助。这很有效,非常感谢@KevinAmorim!很好!将其作为答案发布:)