Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC-绑定的隐藏字段不';不含价值_C#_Asp.net Mvc_Model Binding - Fatal编程技术网

C# ASP.NET MVC-绑定的隐藏字段不';不含价值

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

我的项目(ASP.NETMVC5/AJAX/BOOTSTRAP)有问题

当单击第页上的保存按钮时,.Net会在POST中调用正确的操作,但PSATOKEN的隐藏字段不包含值(请参见视图中的@Html.HiddenFor(m=>m.PSATOKEN)),尽管PSATOKEN在控制器方法中包含GUID值(在调试模式下)

让我们看看下面的一些代码

非常感谢回答者

型号

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);
    }