我正在使用模型将值从控制器传递到模型。假设我有第一个控制器操作方法:
public ActionResult CreateADForm(SiteDirectionModel model){
MyModel myModel= new MyModel{
id = model.id,
name = model.name,
//an so on
siteDirection = model //a SiteDirectionModel object
};
return View(myModel);
}
此方法的目的是预加载某些值,然后将其传递给具有以下形式的视图:
@model MyProject.Models.MyModel
@using (Html.BeginForm("ValidateForm", "Create", FormMethod.Post))
{
@Html.AntiForgeryToken()
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m=>m.name, new { @class= "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.name, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.name, "", new { @class = "text-danger" })
</div>
</div>
<input type="submit" value="Créer l'utilisateur" class="btn btn-primary" />
我的问题是,现在当我验证此表单时,我尝试检索SiteDirectionModel siteDirection
但它始终为null。我想这样做,以便在表单无效的情况下,然后我返回到显示错误的表单(例如文本框未填充),但它不正常。我猜测在填写表单时必须归因于值,这就是为什么我一直都是null,但是你知道怎么做吗?
答案 0 :(得分:1)
表单验证在完成到服务器的往返(即表单POST之后)后发生。 因此,您必须将所有值发送回接收操作中所需的服务器。
为您需要的<?php
$common_color = "#888888";
?>
<style type="text/css">
body{
color : <?php echo $common_color ?>;
}
h1{
color : <?php echo $common_color ?>;
}
</style>
属性添加隐藏字段。
siteDirection
或者,发送siteDirection的ID并再次从DB加载此实体。