MVC,Razor - 提交表单(在@if中)在帖子

时间:2018-02-27 14:28:21

标签: html asp.net-mvc razor http-post

我正在尝试将一些更改保存到数据库中。 视图获取模型,应该能够进行更改并保存它们。但是,当我提交表单时,post方法中的ContactInfo参数不为null,但所有属性都是。

我使用MVC5和Razor。该脚本位于单独的.ts文件

在控制器中:

[HttpPost]
public bool SaveInfoChanges(ContactInfo editedContactInfo)
{
    // Save data
    return true;
}

脚本:

export function saveInfoChanges() {
    $("#EditContactInfoForm").submit();
};

HTML:

@if (true)
{
    @using (Html.BeginForm("SaveInfoChanges", "ContactInfoBox", FormMethod.Post, new { id = "EditContactInfoForm" }))
    }
        <table>
            @Html.HiddenFor(model => model.Name)
            @Html.HiddenFor(model => model.Address1)
            @Html.HiddenFor(model => model.Address2)
            @Html.HiddenFor(model => model.ZipAndCity)
            @Html.HiddenFor(model => model.Country)

            <tr>
                <td>test</td>
                <td>
                    @Html.TextBoxFor(model => model.Address3, new { id = "ContactTypeInput", placeholder = "", style = "width:300px" })
                </td>
            </tr>
        </table>
    }
}

型号:

public class ContactInfo
{
    public string ContactInfoBoxHeaderText { get; set; }
    public string Name { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string ZipAndCity { get; set; }
    public string Country { get; set; }
}

我无法想出更多相关信息,但请不要犹豫。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

删除@if解决了问题。我只需要找到隐藏/显示元素的另一种方法。