Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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# MVC局部视图和控制器代码_C#_Asp.net Mvc_Razor_Partial Views_Asp.net Mvc Partialview - Fatal编程技术网

C# MVC局部视图和控制器代码

C# MVC局部视图和控制器代码,c#,asp.net-mvc,razor,partial-views,asp.net-mvc-partialview,C#,Asp.net Mvc,Razor,Partial Views,Asp.net Mvc Partialview,我不明白控制器是如何处理局部视图的,它与视图相同吗?我举了一个例子,似乎从未使用过局部视图控制器 这就是一个例子 主视图(test.cshtml): 当我调用我期望的主视图时 主视图 局部视图 我的号码是11 但是数字11没有写出来。我遗漏了什么吗?这里是将匿名模型传递到局部视图: <h2>Main View</h2> @Html.Partial("_Partial", new { myNumber = 11 }) @model int <h3>partia

我不明白控制器是如何处理局部视图的,它与视图相同吗?我举了一个例子,似乎从未使用过局部视图控制器

这就是一个例子

主视图(test.cshtml):

当我调用我期望的主视图时

主视图

局部视图

我的号码是11


但是数字11没有写出来。我遗漏了什么吗?

这里是将匿名模型传递到局部视图:

<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
然后,您可以在局部视图中使用
@model
关键字:

<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
你应使用:

public ActionResult _Partial(int myNumber) {
    return PartialView("_Partial", 11);
}

方法
PartialView
可以在AJAX场景中用于呈现HTML页面的一部分。

这里,将匿名模型传递到部分视图:

<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
然后,您可以在局部视图中使用
@model
关键字:

<h2>Main View</h2>
@Html.Partial("_Partial", new { myNumber = 11 })
@model int
<h3>partial view</h3>
<p>my number is @Model</p>
你应使用:

public ActionResult _Partial(int myNumber) {
    return PartialView("_Partial", 11);
}

方法
PartialView
可以在AJAX场景中用于呈现HTML页面的一部分。

感谢评论和回答,我找到了3种方法:

  • @行动(感谢Stephen Muecke对问题的评论)
  • @Html.Partial()
    不调用控制器方法-它只呈现名为“\u Partial”的视图中定义的Html。您需要
    @Html.Action(“_Partial”,new{myNumber=11})
    来调用服务器方法并呈现它生成的Html

  • 使用
    ViewDataDictionary
    (感谢Mark Schevchenko的回答和另一个问题)
  • @Html.Partial(“\u Partial”,new{myNumber=11})
    将第二个参数作为模型传递,以将参数传递给控制器
    ViewDataDictionary
    应改用

    @Html.Partial("_Partial", new ViewDataDictionary { { "myNumber", 11 } }
    
  • 使用
    整数
    作为局部视图模型(感谢Mark Schevchenko的回答)

  • 见马克·舍甫琴科的答案。这种方法的缺点是你不能在你的局部视图上有另一个模型

    我找到了3种方法,感谢评论和答案:

  • @行动(感谢Stephen Muecke对问题的评论)
  • @Html.Partial()
    不调用控制器方法-它只呈现名为“\u Partial”的视图中定义的Html。您需要
    @Html.Action(“_Partial”,new{myNumber=11})
    来调用服务器方法并呈现它生成的Html

  • 使用
    ViewDataDictionary
    (感谢Mark Schevchenko的回答和另一个问题)
  • @Html.Partial(“\u Partial”,new{myNumber=11})
    将第二个参数作为模型传递,以将参数传递给控制器
    ViewDataDictionary
    应改用

    @Html.Partial("_Partial", new ViewDataDictionary { { "myNumber", 11 } }
    
  • 使用
    整数
    作为局部视图模型(感谢Mark Schevchenko的回答)

  • 见马克·舍甫琴科的答案。这种方法的缺点是在局部视图上不能有另一个模型

    这只是一个理解为什么不调用局部视图控制器的示例。在我的场景中,部分视图需要获取一个模型对象列表,并呈现其中的一部分
    @Html.partial()
    并不调用控制器方法-它只呈现名为
    “\u partial”
    的视图中定义的Html。您需要
    @Html.Action(“_Partial”,new{myNumber=11})
    来调用服务器方法并呈现它生成的Html。这只是一个理解为什么不调用部分视图控制器的示例。在我的场景中,部分视图需要获取一个模型对象列表,并呈现其中的一部分
    @Html.partial()
    并不调用控制器方法-它只呈现名为
    “\u partial”
    的视图中定义的Html。你需要
    @Html.Action(“_Partial”,new{myNumber=11})
    来调用一个服务器方法并呈现它生成的Html,如果我的部分视图已经有一个模型呢?假设它有@model
    myCustomClass
    ,我需要一个整数参数
    public-ActionResult\u-Partial(int-myNumber){…my-code}
    F.e.
    \u-Partial(new-myCustomClass{integerField=myNumber})
    ,谢谢,问题稍有不同,但您的示例帮助了lotad,如果我的局部视图已经有了模型呢?假设它有@model
    myCustomClass
    ,我需要一个整数参数
    public-ActionResult\u-Partial(int-myNumber){…my-code}
    F.e.
    \u-Partial(new-myCustomClass{integerField=myNumber})
    。谢谢,这个问题略有不同,但你的例子帮助很大