J'utilise Razor HtmlHelpers. en utilisant le code ci-dessous j'ai essayé d'imprimer la valeur de ViewItemDto mais il montre toujours 0 pour utiliser @ Html.TextBoxFor ou n'importe quelle méthode @Html ... For (x => ..).Comportement étrange dans Razor MVC tout en utilisant Html.Helpers
Quelqu'un a-t-il une idée de ce qui se passe?
Remarque - La méthode renvoie la valeur correcte car je peux déboguer et voir la valeur dans la fenêtre de débogage sur le côté des vues.
[DataContract]
[Serializable]
public class ViewItemDto
{
[DataMember]
public decimal ViewItemId { get; set; }
[DataMember]
public string ItemName { get; set; }
}
From Controller Return
public ActionResult Index()
{
ViewItemDto viewItem = new ViewItemDto();
viewItem.ItemName = "OldData";
viewItem.ViewItemId = 10;
return View(viewItem);
}
public PartialViewResult SaveData(ViewItemDto viewItem)
{
viewItem.ItemName = "NewData";
viewItem.ViewItemId = 100;
return PartialView("ViewUserControl1", viewItem);
}
On View ViewUserControl1
@model Testing.Models.ViewItemDto
<div id="divSave">
@using (Ajax.BeginForm("SaveData", "Home", new AjaxOptions()
{
UpdateTargetId = "divSave",
OnSuccess = "OnSuccess",
InsertionMode = InsertionMode.Replace
}))
{
@Html.TextBoxFor(x => x.ViewItemId)//Shows 10
@Html.TextBox("ID", Model.ViewItemId) //Shows proper value 100
@Html.TextBoxFor(x => x.ItemName)//Shows oldData value
<input type="submit" name="name" value="Submit" />
}
et Index.cshtml
@model Testing.Models.ViewItemDto
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Index</h2>
@Html.Partial("ViewUserControl1", Model);
J'étais non activé pour retourner 'viewItem' comme vous l'avez dit, du contrôleur. Cela me donne une erreur de compilation. –
Je suis désolé pour le contrôleur j'ai écrit un exemple de code comme return ViewItem..i retourne PartialView lui-même.Tout fonctionne correctement, sauf les valeurs qui sont affichées dans la vue. –