MVC持久模型 - c#

在MVC 3应用程序中,由于某些文件夹创建逻辑,我需要能够将创建视图分为2个不同部分。在第一个视图上,我有一个带有项目名称的文本框,单击下一步按钮时,我需要为该项目创建文件夹,并且我需要一种以某种方式在我的下一个视图中获取该项目名称文件夹的方法。现在,我按“下一步”,然后我松开了“项目名称”,但我无法再获得它。
在互联网上,有很多地方都以相同的方式实施它,但是我不知道该怎么做。

关于如何保持模型的任何解决方案?

c#参考方案

您可以在第二个视图中使用一个隐藏字段,其中包含在第一个视图中输入的项目名称。这样,当您提交第二个表单时,您将获得项目名称和项目文件夹。

另一种可能性是将在第一个视图中输入的值存储在服务器上的某个位置(数据库,会话等)。

更新:

根据注释部分的要求,下面是一个使用隐藏字段的示例。

第一种观点:

@model FirstStepViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.ProjectName)
    <button type="submit">OK</button>
}

然后执行第一步的控制器动作:

[HttpPost]
public ActionResult Foo(FirstStepViewModel model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    return RedirectToAction("Bar", new { projectname = model.ProjectName });
}

然后您将执行第二个控制器操作,该操作将提供第二个视图:

public ActionResult Bar(FirstStepViewModel firstStep)
{
    var model = new SecondStepViewModel
    {
        ProjectName = firstStep.ProjectName
    };
    return View(model);
}

您将有一个相应的视图:

@model SecondStepViewModel
@using (Html.BeginForm())
{
    @Html.HiddenFor(x => x.ProjectName)
    @Html.EditorFor(x => x.ProjectFolder)
    <button type="submit">OK</button>
}

它将发布到最终操作:

[HttpPost]
public ActionResult Bar(SecondStepViewModel model)
{
    // here you will get both model.ProjectName and model.ProjectFolder
    ...
}

asp.net使用客户端验证而不发布到服务器 - c#

我有一个很长的表格,分为几个部分。我想利用内置的ASP.NET验证控件而不在提交表单之前将其回发到服务器。为了提供更多的上下文,让我解释一下我的想法。该表格分为几部分,每个部分都有一个“下一步”按钮。单击“下一步”按钮时,将使用ASP.NET包含的客户端代码来验证该部分。如果该部分有效,则jquery方法将隐藏该部分并显示下一个。当用户到达表单的最后部分时,…

ASP.NET持久缓存(“延迟加载”样式吗?) - c#

我在使缓存按我想要的方式工作时遇到了麻烦。问题:检索请求的数据的过程非常耗时。如果使用标准的ASP.NET缓存,则某些用户将承担检索数据的“重任”。这是不可接受的。解决方案?:数据是否为100%当前并不重要。我想提供旧的无效数据,同时在另一个线程中更新缓存的数据,使新数据可用于将来的请求。我认为,数据需要以某种方式持久化,以便能够在应用程序重新启动后为第一个…

在扩展控制器中更改ViewData的类型 - c#

我创建了自己的CustomController基类,该基类继承自Controller。同样,我创建了自己的CustomViewData,它继承自ViewDataDictionary。CustomController类具有一个接受CustomViewData作为参数的ctor。我所有的控制器都继承自CustomController并传递其继承的CustomVi…

在MVC项目中启用/禁用链接 - c#

我知道有很多关于该主题的帖子,但是没有一篇可以解释我想要做什么。我正在一个大型MVC项目中,该项目具有一百多个模型,视图和控制器。主菜单项与URL一起存储在数据库中,其余链接只是硬编码的href。当项目运行并登录时,它会显示一个仪表板,在女巫的左侧下拉菜单,您必须选择要使用的女巫复合体。默认情况下,没有选择复杂的对象。我要禁用所有链接,除了要添加新复合体的链…

单击选项卡链接时,请专注于每个引导选项卡中的First asp:textbox - javascript

我是开发的新手,并开始开发简单的asp.net应用程序。我正在使用每个都有一些asp标签和文本框的bootstrap选项卡。单击该选项卡时,我要重点关注选项卡内容中的第一个文本框。我搜索了各种答案,但都是针对输入字段的(exp:输入type =“ text”)。找不到适用于ASP文本框的任何内容。任何帮助将不胜感激。谢谢 javascript参考方案 ASP…