C# ASP.NET MVC-绑定的隐藏字段不';不含价值
我的项目(ASP.NETMVC5/AJAX/BOOTSTRAP)有问题 当单击第页上的保存按钮时,.Net会在POST中调用正确的操作,但PSATOKEN的隐藏字段不包含值(请参见视图中的@Html.HiddenFor(m=>m.PSATOKEN)),尽管PSATOKEN在控制器方法中包含GUID值(在调试模式下) 让我们看看下面的一些代码 非常感谢回答者 型号C# ASP.NET MVC-绑定的隐藏字段不';不含价值,c#,asp.net-mvc,model-binding,C#,Asp.net Mvc,Model Binding,我的项目(ASP.NETMVC5/AJAX/BOOTSTRAP)有问题 当单击第页上的保存按钮时,.Net会在POST中调用正确的操作,但PSATOKEN的隐藏字段不包含值(请参见视图中的@Html.HiddenFor(m=>m.PSATOKEN)),尽管PSATOKEN在控制器方法中包含GUID值(在调试模式下) 让我们看看下面的一些代码 非常感谢回答者 型号 public interface IPSAPageViewModel { String PSAToken { get; set
public interface IPSAPageViewModel
{
String PSAToken { get; set; }
int IdPSAAzienda { get; set; }
}
public abstract class BasePSAPageViewModel : IPSAPageViewModel
{
public String PSAToken { get; set; }
public int IdPSAAzienda { get; set; }
}
public class DatiGeneraliViewModel : BasePSAPageViewModel
{
public DatiGeneraliViewModel()
{
this.Item = new InformazioniGenerali();
}
public Crea.PSA.ServiceLayer.BO.InformazioniGenerali Item { get; set; }
public List<SelectListItem> FormeGiuridicheList { set; get; }
public List<SelectListItem> FormeConduzioneList { set; get; }
}
查看
要查看视图,请单击
您可以在VS中查看调试时的值
但在生成的HTML中,PSATOKEN的隐藏字段为空我在这里找到了解决方案:
. 这个项目是什么?我没有看到任何条目成员这是DatiGeneraliViewModel的实际代码吗?它似乎无法编译。错误可能在真实代码中。@derloopkat&Adam Brown-我截断了它以使其更具可读性…现在我添加了它您可以包含整个视图标记吗?请查看生成的HTML-隐藏的表单元素创建正确吗?您还可以在视图中放置断点。
private ViewResult ViewPSAPage(IPSAPageViewModel vm)
{
base.createViewBagPaginePrecSucc();
return View(vm);
}
[HttpPost]
[ValidateAntiForgeryToken]
[HttpParamAction]
public ActionResult SalvaDatiGeneraliProsegui(DatiGeneraliViewModel vm)
{
return salvataggioDatiGenerali(vm, true);
}
[HttpPost]
[ValidateAntiForgeryToken]
[HttpParamAction]
public ActionResult SalvaDatiGenerali(DatiGeneraliViewModel vm)
{
//Here vm.PSAToken doesn't contain the value setted
return salvataggioDatiGenerali(vm);
}
private ActionResult salvataggioDatiGenerali(DatiGeneraliViewModel vm, bool proseguiCompilazione = false)
{
if (ModelState.IsValid)
{
var resp = aziendeManager.Save(vm.PSAToken, vm.Item, SessionManager.UserIdConnected, CONTROLLERNAME);
if (resp.Success)
{
var psaAzienda = resp.DataObject;
setVarsInSession(psaAzienda.idToken.ToString(), psaAzienda.idPsaAzienda.ToString(), psaAzienda.Aziende.ragioneSociale);
//Here there is some Value (POST)
vm.PSAToken = psaAzienda.idToken.ToString();
//vm.IdPSAAzienda = psaAzienda.idPsaAzienda.ToString();
if (proseguiCompilazione)
return RedirectToAction("DatiAziendaliRiepilogativi", new { id = psaAzienda.idToken });
}
else
ModelState.AddModelError("", resp.Message);
}
setSuccessMessage();
vm.FormeGiuridicheList = aziendeManager.GetAllFormeGiuridiche().ToSelectItems();
vm.FormeConduzioneList = aziendeManager.GetAllFormeConduzione().ToSelectItems();
return ViewPSAPage(vm);
}