C# MVC3模式表单位于不同页面中
我提前道歉如果这让人困惑,我很难用语言表达这个概念 假设我有一个C# MVC3模式表单位于不同页面中,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我提前道歉如果这让人困惑,我很难用语言表达这个概念 假设我有一个付款创建屏幕,带有一个下拉框或列表框来选择相关的供应商,其中必须选择一个供应商。。。但是供应商尚不存在。我不想将用户重定向到另一个页面,这样他们就可以创建必备的供应商,并让用户丢失他/她已经输入的所有信息。相反,我想在屏幕上放置一个链接,单击该链接时,会出现一个模式表单,以便他们可以动态添加供应商对象,验证它并引用它,然后继续添加付款记录 我已经为供应商创建了一个屏幕,如果我能够以某种方式重用该代码,那将是一个理想的选择,但我没有看
付款
创建屏幕,带有一个下拉框或列表框来选择相关的供应商
,其中必须选择一个供应商
。。。但是供应商
尚不存在。我不想将用户重定向到另一个页面,这样他们就可以创建必备的供应商
,并让用户丢失他/她已经输入的所有信息。相反,我想在屏幕上放置一个链接,单击该链接时,会出现一个模式表单,以便他们可以动态添加供应商
对象,验证它并引用它,然后继续添加付款
记录
我已经为供应商
创建了一个屏幕,如果我能够以某种方式重用该代码,那将是一个理想的选择,但我没有看到一个简单的方法来做到这一点
这里还有另一个技巧:供应商
记录也可能引用不存在的内容;可能存在“嵌套”模态形式的可能性相当高。此外,对于任何给定的记录,可能有几个“依赖项”,我希望每个记录都表现出相同的行为,以获得一致的用户体验
MVC框架中是否有某种机制,或者是否有一种适当的模式来创建这种行为?我正在尝试一种连续的、直观的用户体验,而我正在绞尽脑汁寻找最好的方法。您想要的概念是局部视图。它们本身几乎可以是一个完整的页面,你只需将它们插入任何你想插入的地方 您可以将它们包含在这样的页面中:
@Html.Partial("_PaymentScreen")
或者,如果需要在加载原始页面的同时呈现图像或媒体,可以使用以下方法:
@Html.RenderPartial("_PaymentScreen")
渲染局部视图的选项非常多用
对于您的modal,您可以执行以下操作:
<div id="myModal">
@Html.RenderPartial("_PaymentScreen")
</div>
@Html.RenderPartial(“\u PaymentScreen”)
关于如何使用它们,有很多参考资料,以下是一些:
n
层模型数据,验证将成为一场噩梦。“添加新供应商”链接肯定需要是一个AJAX调用,而不是在原始DOM中。我不确定为什么嵌套几层模型数据会那么糟糕,我知道您说过n
,但您的场景只需要2-3层。我也不知道为什么验证会是一场噩梦,你需要AJAX来完成你正在做的事情,这样验证就可以在发布到控制器操作的过程中完成。如果您想尝试不同的方法,请查看客户端实现。差不多。