博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET中Html.Partial和Html.Action的一个区别
阅读量:7067 次
发布时间:2019-06-28

本文共 1223 字,大约阅读时间需要 4 分钟。

Html.Partial通常呈现的是静态内容,如果不指定的Partial方法中绑定的参数,默认为宿主页面的Model类型,因此如果Partial页面中的Model和主页面的Model类型不一致的话,一定要指定 Partial方法中绑定的参数,不然会报错。Html.Partial方法也不会触发Action方法。

Html.Action会调用Action方法,并且会返回一个View或者PartialView,或者Json等(根据具体Action中返回的值)

因此,如果使用不同的Model,可以考虑使用Html.Action来处理。下面是部分代码演示。


 
  1. @model MvcApplication1.Views.Test2.Test2_Index  
  2. @{  
  3.     ViewBag.Title = "Index";  
  4. }  
  5.  
  6. <h2>Test2-Index</h2> 
  7. @Model.i<br /> 
  8.  
  9. @***不触发action方法,PartialIndex.cshtml中绑定  
  10. 了Model和Index.cshtml绑定的Model不一样,  
  11. 因此必须指定自己的Model,否则报错。  
  12. *@  
  13.  
  14. @Html.Partial("PartialIndex",new MvcApplication1.Views.Test2.Test2_ParitalIndex())<br /> 
  15.  
  16. @*  
  17. **触发action方法,不指定Model的时候就传入一个新的Test2_ParitalIndex对象
  18. *@  
  19. @Html.Action("PartialIndex", "Test2")<br /> 

 

 
  1. @model MvcApplication1.Views.Test2.Test2_ParitalIndex  
  2. TestPartial<br /> 
  3. @Model.i<br /> 

 

 
  1. public class Test2Controller : Controller  
  2. {  
  3.     public ActionResult Index(Test2_Index vm)  
  4.     {  
  5.         return View("Index",vm);  
  6.     }  
  7.  
  8.     public ActionResult PartialIndex(Test2_ParitalIndex vm)  
  9.     {  
  10.         return View("PartialIndex", vm);  
  11.     }  

 


对于 下列这种方法,

 
  1. public ActionResult Index(Test2_Index vm)  
  2.         {  
  3.             return View("Index",VM);  
  4.         } 

如果Action方法Get请求的时候,没有设置绑定参数,则vm会得到一个默认想new

Test2_Index ()对象。如果设置了绑定参数,则按照设定值传递给Action方法。

本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/1032013,如需转载请自行联系原作者

你可能感兴趣的文章
Raspberry Pi Zero发布,一台5美元的电脑
查看>>
IBM和Lightbend宣布构建新认知开发平台的战略
查看>>
GitHub引入依赖图和安全预警
查看>>
Visual Studio 2017 15.7全面支持C++17
查看>>
BAT集体升级云事业部,这背后都藏着哪些“小心思”?
查看>>
云时代的开源软件收入模式
查看>>
联合国儿童基金会投资六家区块链初创企业,目标是解决“全球性挑战”
查看>>
【leetcode】102. Binary Tree Level Order Traversal 水平遍历二叉树
查看>>
java中的内存模型
查看>>
Vue 初始化性能优化
查看>>
[LeetCode] Sudoku Solver [Backtracking]
查看>>
js函数调用模式和常用的几个方法
查看>>
zookeeper:集群中实例的数量
查看>>
基于redis实现的锁(用于控制nodejs的并发)
查看>>
js手札--关于AMD的简单分析
查看>>
Elixir Ranch: 一个用于处理套接字的网络库
查看>>
JMS规范及相关实现
查看>>
Python “黑魔法” 之 Generator Coroutines
查看>>
javascript 的工具函数
查看>>
Magento后台模块示例(2)
查看>>