Html Post模型始终为空
我有两页。首先,我只有表单来发布搜索数据,第二,我也有相同的表单用于搜索和带有搜索结果的容器。当我从第一个表单模型发布到搜索方法时,正如我所期望的,但从第二个表单模型属性设置为默认值int-0、bool-false、string-null等 有什么问题 第一个Fom: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
<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)
{