Я новичок в ASP.NET MVC и нуждаюсь в некоторой помощи.
Когда по почте запускается действие "P01", я получаю строго типизированную модель в качестве параметра, изменяю свойства экземпляра этой модели и вызываю "return View (model)"; ".
В связи с этим я использую синтаксис" @ Html.TextBoxFor (m => m.p01campo01) ".
У кого-то здесь возникла похожая проблема, и получите совет по использованию синтаксиса im, используя.
Кто-то здесь использует синтаксис "<% = Html.TextBox (" Person.LastName ", ViewData.Model.LastName)%>".
Проблема когда представление отображается, текстовое поле имеет последнее опубликованное значение, а не значение, назначенное в контроллере.
Спасибо всем, кто пытался мне здесь помочь, я поставил в качестве ответа первый ответ, который работает.
Вот мой код:
*************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
namespace MyTest.Models
{
//-------
public class testePg01
{
[DataType(DataType.Text)]
[Display(Name = "p01campo01")]
public string p01campo01 { get; set; }
[DataType(DataType.Text)]
[Display(Name = "p01campo02")]
public string p01campo02 { get; set; }
}
//-------
}
*************************************************
*************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MyTest.Models;
namespace MyTest.Controllers
{
public class TesteController : Controller
{
//-------
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult P01()
{
return View();
}
//-------
[AcceptVerbs(HttpVerbs.Post)]
[ValidateAntiForgeryToken]
public ActionResult P01(testePg01 model)
{
model.p01campo01 = model.p01campo01 + "#updatedHereButNotInView";
model.p01campo02 = model.p01campo02 + "#updatedHereButNotInView";
return View(model); // it dont return updated
}
//-------
}
}
*************************************************
*************************************************
@model MyTest.Models.testePg01
@{
ViewBag.Title = "P01";
}
<h2>P01</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Html.ValidationSummary(true, "Erro na pagina.")
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<div>
<fieldset>
<legend>Test P01</legend>
<div class="editor-label">
@Html.LabelFor(m => m.p01campo01)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.p01campo01)
@Html.ValidationMessageFor(m => m.p01campo01)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.p01campo02)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.p01campo02)
@Html.ValidationMessageFor(m => m.p01campo02)
</div>
<p>
<input type="submit" value="P01" />
</p>
</fieldset>
</div>
}
*************************************************