Vous ne savez pas exactement comment exprimer la question. Je veux utiliser le champ hiddenFor pour enregistrer l'heure d'enregistrement dans la base de données lors de l'affichage de la date dans un html.display ou similaire à ce champ sans modification.Affichez correctement les données dans Afficher et enregistrez-les à l'aide de HiddenFor et de DisplayFor.
Créer une action
public ActionResult Create()
{
Record newRecord = new Record();
newRecord.user_id = 1; //let it be 1 for simplicity
newRecord.record_time = System.DateTime.Now;
return View(newRecord);
}
Créer une vue
<div class="form-group">
@Html.LabelFor(model => model.user_id, "User name", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.HiddenFor(model => model.user_id)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.record_time, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.HiddenFor(model => model.record_time)
//this line I'm concerned about
@Html.DisplayFor(model => model.record_time, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
QUESTIONS
1) À propos user_id. Est-il correct d'utiliser hiddenFor pour un nouvel enregistrement, pas editorFor?
2) À propos de l'enregistrement. Est-il correct d'utiliser à la fois hiddenFor et displayFor? lequel sera utilisé pour renvoyer des données à la base de données? Quelle est la manière correcte d'afficher simplement une information datetime prédéfinie et de l'envoyer ensuite à la base de données?
Seuls les contrôles de formulaire affichent une valeur ('DisplayFor()' ne crée pas de contrôle de formulaire). Mais vous ne devriez pas avoir de contrôle de formulaire pour 'record_time' - vous venez de définir dans le contrôleur avant de sauvegarder les données. En ce qui concerne 'user_id' - si vous ne voulez pas le modifier, il devrait s'agir d'une entrée cachée –
@StephenMuecke, merci beaucoup. Bon conseil pour l'enregistrer dans l'action HttpPost. J'ai corrigé en conséquence et c'est parfait maintenant. – SWA