Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Serialization 在视图中使用Microsoft.Web.MVC_Serialization_Asp.net Mvc 5 - Fatal编程技术网

Serialization 在视图中使用Microsoft.Web.MVC

Serialization 在视图中使用Microsoft.Web.MVC,serialization,asp.net-mvc-5,Serialization,Asp.net Mvc 5,下面是一个创建向导控件的联机示例。它涉及到在视图上序列化模型,然后将其传递给控制器,控制器反序列化模型并使用。下面是视图的代码 @using Microsoft.Web.Mvc @model Sample.Models.RegisterWizardViewModel @{ var currentStep = Model.Steps[Model.CurrentStepIndex]; ViewBag.Title = "Register"; } @using (Html.Beg

下面是一个创建向导控件的联机示例。它涉及到在视图上序列化模型,然后将其传递给控制器,控制器反序列化模型并使用。下面是视图的代码

@using Microsoft.Web.Mvc

@model Sample.Models.RegisterWizardViewModel

@{
var currentStep = Model.Steps[Model.CurrentStepIndex];
ViewBag.Title = "Register";
}
          @using (Html.BeginForm())
            {

                @Html.Serialize("wizard", Model)

                @Html.Hidden("StepType", Model.Steps[Model.CurrentStepIndex].GetType())
                @Html.EditorFor(x => currentStep, null, "")

                if (Model.CurrentStepIndex > 0)
                {
                    <input type="submit" value="Previous" name="prev" />
                }

                if (Model.CurrentStepIndex < Model.Steps.Count - 1)
                {
                    <input type="submit" value="Next" name="next" />
                }
                else
                {
                    <input type="submit" value="Finish" name="finish" />
                }
            }
@使用Microsoft.Web.Mvc
@模型Sample.Models.RegisterWizardViewModel
@{
var currentStep=Model.Steps[Model.CurrentStepIndex];
ViewBag.Title=“寄存器”;
}
@使用(Html.BeginForm())
{
@序列化(“向导”,模型)
@Html.Hidden(“StepType”,Model.Steps[Model.CurrentStepIndex].GetType())
@EditorFor(x=>currentStep,null,“”)
如果(Model.CurrentStepIndex>0)
{
}
if(Model.CurrentStepIndex
现在,一开始我在控制器中找不到[Deserialize]属性,为此,我从NuGet安装了MvcContrib包

我面临的问题是找不到@Html.Serialize(“向导”,Model)。此外,无法解析名称空间Microsoft.Web.Mvc。如果在控制器文件中我使用Microsoft.Web.Mvc,那么它可以正常工作,但是当我在视图中使用相同的命名空间时,它就无法解决。System.Web.MVC和Microsoft.Web.MVC之间有什么区别?如何解决名称空间错误

我还了解到@Html.Serialize不可用,可以通过MVC Futures访问。我已经添加了包,但是如何使用它在视图上序列化模型


编辑:我想说的是,我已经安装了nuget软件包Microsoft.AspNet.Mvc.Futures 5.0.0',但是我在references文件夹中看不到任何引用。“引用”文件夹中没有Microsoft.AspNet.Mvc或Microsoft.AspNet.Mvc.Futures引用。我想知道它到哪里去了?

在我看来,这是一个糟糕的设计——它试图模仿Web窗体的视图状态。考虑将每一个步骤坚持到数据库(“会话也可以是一个替代方案”),或者使用一个窗体,其中的部分是按需要显示/隐藏的()@ Stephen Muecke,谢谢您的回复。我对这个设计也不满意,但这是我能找到的唯一一个可行的例子。我想做的是使用jQueryAjax创建一个向导控件,并保存每个步骤的信息。我找到了各种各样的例子,但我想用局部的观点来做这件事。因此,在每一步都会加载新的局部视图,当用户单击submit时,该值会在会话中持久化。您知道任何使用JQuery和局部视图创建MVC向导控件的示例或文章吗?我们将非常感谢您的帮助,