Html Post模型始终为空

Html Post模型始终为空,html,asp.net-mvc,twitter-bootstrap,post,Html,Asp.net Mvc,Twitter Bootstrap,Post,我有两页。首先,我只有表单来发布搜索数据,第二,我也有相同的表单用于搜索和带有搜索结果的容器。当我从第一个表单模型发布到搜索方法时,正如我所期望的,但从第二个表单模型属性设置为默认值int-0、bool-false、string-null等 有什么问题 第一个Fom: <form class="form-horizontal" action="@Url.Action("Search", "Home")" method="POST"> @Html.ValidationS

我有两页。首先,我只有表单来发布搜索数据,第二,我也有相同的表单用于搜索和带有搜索结果的容器。当我从第一个表单模型发布到搜索方法时,正如我所期望的,但从第二个表单模型属性设置为默认值int-0、bool-false、string-null等

有什么问题

第一个Fom:

    <form class="form-horizontal" action="@Url.Action("Search", "Home")" method="POST">
    @Html.ValidationSummary()
    <fieldset>

        <!-- Form Name -->
        <legend>Search</legend>

        <!-- Search input-->
        <div class="form-group">
            <label class="col-md-4 control-label" for="CertID">Certificate ID</label>
            <div class="col-md-4">
                <input id="CertID" name="CertID" type="search" placeholder="Certificate ID" class="form-control input-md" required="">

            </div>
        </div>

        <!-- Search input-->
        <div class="form-group">
            <label class="col-md-4 control-label" for="CertAuthCode">Certificate AuthCode</label>
            <div class="col-md-4">
                <input id="CertAuthCode" name="CertAuthCode" type="search" placeholder="Certificate AuthCode" class="form-control input-md" required="">

            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-4 col-md-4">
                <div class="checkbox">
                    <label>
                        <input type="checkbox" name="IncludePreviousQuestionnaire" value="true"> Include Previous Questionnaire?
                    </label>
                </div>
            </div>
        </div>

        <!-- Button -->
        <div class="form-group">
            <label class="col-md-4 control-label" for="searchCert"></label>
            <div class="col-md-4">
                <button id="searchCert" type="submit" class="btn btn-primary">Search</button>
            </div>
        </div>

    </fieldset>
更新:第二个表单的模型存在于下一个表单中:

public class SearchViewModel
    {
        public SearchCertModel CertModel { get; set; } // Serch Result
        public SearchCertRequest SearchCertRequest { get; set; } // Search Request
    }

解决方案:我从搜索表单中创建了部分视图,现在它可以工作了。有人能解释一下原因吗?谢谢。

两个表单都将发回Home controller的同一方法搜索方法。由于第一个表单正在工作,因此必须保留签名

[HttpPost]
public ActionResult (SearchCertRequest model)
{
但是第二种形式是为SearchViewModel生成控件,因此签名必须是

[HttpPost]
public ActionResult (SearchViewModel model)
{
编辑


在编辑中解释注释。使用第二个表单生成控件,例如。当您创建部分视图并将SearchViewModel的SearchCertRequest属性传递给它时,它将生成一些控件,例如哪些控件将正确发回公共ActionResult SearchCertRequest模型

第二个表单的模型是什么?它是一个包含属性SearchCertRequest的类,因此您的post方法参数应该是该模型,而不是SearchCertRequest@StephenMuecke对请检查更新可能我不理解你的评论。这是有道理的,谢谢。
[HttpPost]
public ActionResult (SearchCertRequest model)
{
[HttpPost]
public ActionResult (SearchViewModel model)
{