Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# 局部视图中的表单元素和逻辑_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

C# 局部视图中的表单元素和逻辑

C# 局部视图中的表单元素和逻辑,c#,asp.net,asp.net-mvc,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我的网站上有很多表格,所有的表格都有很大的不同。然而,将有一个由所有人共享的元素——几个文本框和一条验证消息,具体取决于输入 我正在使用asp.net MVC3,为了代码重用,我想将这个共享元素放在一个局部视图中,该视图将包含在每个表单中。该局部视图必须执行逻辑以检查输入并相应地显示验证消息 有人对我如何做到这一点有什么建议吗?提前感谢。为您的常用视图创建一个视图模型 public class CommonViewModel { public bool IsValid {get;set;

我的网站上有很多表格,所有的表格都有很大的不同。然而,将有一个由所有人共享的元素——几个文本框和一条验证消息,具体取决于输入

我正在使用asp.net MVC3,为了代码重用,我想将这个共享元素放在一个局部视图中,该视图将包含在每个表单中。该局部视图必须执行逻辑以检查输入并相应地显示验证消息


有人对我如何做到这一点有什么建议吗?提前感谢。

为您的常用视图创建一个视图模型

public class CommonViewModel
{
    public bool IsValid {get;set;}
    public string Message {get;set;}

}
现在我们来看看其他的ViewModel

public class MyOtherViewModel
{
    public  CommonViewModel CommonViewModel {get;set;}
    //Other Properties here


}
现在,通过MyOtherView.cshtml,您可以轻松地呈现局部视图,并从主视图传递值

@model MyOtherViewModel
@Html.Partial("commonView",Model.CommonViewModel)
我希望这能帮助你开始


干杯

我正在写一个粗略的代码,请相应地更正。 使用水平视图并编写如下代码

@Html.BeginForm('actionname',controller)
{
@Html.TextBox('abc')

}
然后在控制器中创建一个方法,如
[发布]
Public ActionResult ActionName()
{

}


将此partialview放入任何一个页面。

我不会使用partialview,我宁愿使用EditorTemplate/DisplayTemplate作为子视图类。+1:我同意使用嵌套模型,但我认为最好定义自定义EditorTemplate/DisplayTemplate来代替partialview。谢谢大家,但是EditorTemplate在这种情况下会有什么不同呢?表面上看,EditorTemplates可能看起来就像局部视图,但这只是表面上的,从语义上讲,模板功能强大,可以被框架使用(例如,您只需放置一个@EditorFor(Model))并将所有工作留给模板。和往常一样,它取决于特定的场景(比如其中99.99%的内容)