mon avis de rasoir est d'accepter un modèle ... et j'ai ce code dans ce ..ASP MVC Razor View ne veut pas montrer la valeur @ Html.TextBoxFor du modèle
@{
var my_value = "wth";
if (Model.app != null)
{ my_value = Model.app.name; }
}
@Html.TextBoxFor(a => a.app.name, new { @Value = my_value })
spectacles de wth «lorsque le modèle est non nul ... a fait une mise au point pour voir si MY_VALUE est réglé correctement ... hmmm
Edit:
Merci pour les commentaires.
Un peu nouveau pour ASP MVC. Quelques informations sur ce que j'essaie de faire:
J'ai une vue principale, Main.cshtml, qui montre les enregistrements. Chaque enregistrement peut être modifié en cliquant sur glyphicon. Le code JS saisit le paramètre record_id et appelle Ajax à l'action Application Controller/editApp. J'ai un partiel, _EditApplication.cshtml, dans Main.cshtml, pour afficher mon interface de l'interface utilisateur jQuery à onglets. Et utilise également _AddAppForm.cshtml partielle qui prend un modèle à afficher dans les champs de données.
.... Je pense que c'est là où mon problème est (entre autres lol) ... J'appelle le partiel (_EditApplication.cshtml) dans la vue principale ... et je retourne le même partiel dans mon Action du contrôleur avec un modèle associé.
code:
Main.cshmtl
@{ AppDBServer this_ads = new AppDBServer(); }
@Html.Partial("_EditApplication", this_ads)
<div [email protected]_id.ToString() class="glyphicon glyphicon-pencil btn_edit_app" aria-hidden="true" style="color:blue; cursor:pointer"></div>
Code JS dans Main.cshtml
$('.btn_edit_app').click(function() {
var app_to_edit = $(this).attr('id');
$.ajax({
url: '/Application/editApp',
contentType: 'application/html; charset=utf-8',
data: { app_id: app_to_edit},
type: 'GET',
dataType: 'html',
success: function (result) {},
});
$('#edit_tabs').tabs({ active: 0 });
$('#edit_dialog').dialog({ width: 700, height: 400 });
});
_EditApplication.cshtml - partielle
@using NameSpace.Models
@model AppDBServer
<div id="edit_dialog" title="Edit Application" style="display: none">
@using (Html.BeginForm("saveApps", "Application", new { isNew = false })) {
<div id="edit_tabs">
<ul><li><a href="#edit_application">Application</a></li></ul>
@Html.Partial("_AddAppForm", @Model)
</div>
}
</div>
application Controller - Action: editApp
namespace SHS_Connect.Controllers
{
public class ApplicationController : Controller
{
public ActionResult editApp(int app_id)
{
AppDBServer ads = new AppDBServer();
ads = findADS(app_id);
return PartialView("_EditApplication", ads);
}
}
}
_AddAppForm.cshmtl - utilisé partiel dans _EditApplication.cshtml
@using NameSpace.Models
@model AppDBServer
<div id="application">
<div class="form-group">
@Html.LabelFor(a => a.app.name)
@{
var my_value = "wth";
if (Model.app != null)
{ my_value = Model.app.name; }
}
@Html.TextBoxFor(a => a.app.name, new { @Value = my_value })
</div>
</div>
Que font, pour marquer en bas question pur manque de compréhension –
Ne tentez pas de définir l'attribut 'value' lorsque vous utilisez les méthodes' HtmlHelper'. Vous définissez la valeur de la propriété dans la méthode GET avant de transmettre le modèle à la vue. –
C'est ce que je fais normalement ... J'ai un mauvais problème de conception je pense .. J'utilise le même partial dans mon Main.cshtml et retourne ce même partiel avec le modèle et les valeurs associées de la DB. Dans le Main, partiel prend juste un modèle vide ... alors quand je vais à l'affichage .. Je dis, si c'est nul, alors montrez simplement un champ vide. Pourquoi j'utilise les mêmes Partials: - Si je n'inclue pas le partial dans Main.cshtml, ma boîte de dialogue jQuery w/tabs ne fait pas de popup. - J'ai également besoin des onglets pour afficher les données du modèle. – MAR