Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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_Razor - Fatal编程技术网

C# ASP.NET MVC-带模型的局部视图在另一个带模型的视图中

C# ASP.NET MVC-带模型的局部视图在另一个带模型的视图中,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我是ASP.NET MVC的新手,希望能对我的以下问题提出一些建议 我有一个带有表单的页面,该页面应始终提示用户如下所示: //Create.cshtml @Html.TextBoxFor(m => m.Name) 但是,我想显示一个不同的部分,这取决于哪个id作为querystring发送 ?id=1 如果id是1,那么我想显示 //_Attributes1.cshtml @Html.TextBoxFor(m => m.Size) 如果id是2 //_Attributes2.c

我是ASP.NET MVC的新手,希望能对我的以下问题提出一些建议

我有一个带有表单的页面,该页面应始终提示用户如下所示:

//Create.cshtml

@Html.TextBoxFor(m => m.Name)
但是,我想显示一个不同的部分,这取决于哪个id作为querystring发送 ?id=1

如果id是1,那么我想显示

//_Attributes1.cshtml

@Html.TextBoxFor(m => m.Size)
如果id是2

//_Attributes2.cshtml

@Html.TextBoxFor(m => m.Brand)
因此,当id为1时,页面应如下所示:

@Html.TextBoxFor(m => m.Name)
@Html.TextBoxFor(m => m.Size)
我想我的模型会是这样的:

public class ProductModel {
    public string Name { get; set; }
    public Attributes Attributes { get; set; }
}

public class Attributes { }

public class Attributes1 : Attributes {
    public int Size { get; set; }
}
public class Attributes2 : Attributes {
    public string Brand { get; set; }
}

关于如何实现这一点的任何输入?

在这里回答,您只需要拥有不同的部分视图,并根据您的业务案例返回相应的部分视图。Yahya,但它不仅应该返回部分视图,还应该返回“环绕”create.cshtml。或者我误解了什么?简单的结构是,在Create.cshtml中,您请求一个局部视图,该局部视图背后的操作将继续进行,并进行检查并返回相关的局部视图(和视图模型)。这都在create.cshtml中,因为顾名思义是“局部视图”。希望能有帮助