从类型lambda表达式中获取所有属性表达式(Get all property expressions from a type lambda expressions)
我想创建一个HtmlHelper,它可以为类的所有属性生成隐藏字段。
在我的剃刀页面中,我将调用以下内容:
@Html.HiddenForObject(x=>x.SomeClass)
其中x是使用@model SomeOtherClass定义的模型
我的助手被定义为=>
public static MvcHtmlString HiddenForObject<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
现在有些类有一些公共属性,我想为其创建隐藏字段。 但在这里,我被困住了,我需要找到正确的代码来迭代我的表达式中的所有属性,获取这些属性的表达式,以便我可以调用
//Pseudo code foreach(var propertyExpression in expression) { @Html.HiddenFor(expression); }
我尝试了一些东西,但基本上我没有想法。 任何帮助深表感谢。
I want to make a HtmlHelper that can produce hidden fields for all properties of a class.
In my razor page I will call the following:
@Html.HiddenForObject(x=>x.SomeClass)
where x would be the model defined with @model SomeOtherClass
My helper is defined as such =>
public static MvcHtmlString HiddenForObject<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
Now some class has a few public properties that I want to make hidden field for. But here I am stuck I need to find the right code to iterate over all the properties in my expression, get the expressions for those properties so I can call
//Pseudo code foreach(var propertyExpression in expression) { @Html.HiddenFor(expression); }
I tried a few things but basically I ran out of ideas. Any help is much appreciated.
原文:https://stackoverflow.com/questions/29850924
最满意答案
您只需要在开始迭代之前应用逻辑来组织帖子的组织方式。
这是一个例子(这不是功能,只是一个快速说明):
<?php $col1 = array(); $col2 = array(); $posts = array('one', 'two', 'three', 'four', 'five', 'six'); foreach ($posts as $post) { $count++; $count % 2 === 1 ? array_push($col1, $post) : array_push($col2, $post); } ?> <div class="col-1"> <?php foreach ($col1 as $post) { echo '<div class="post">'.$post.'</div>'; } ?> </div> <div class="col-2"> <?php foreach ($col2 as $post) { echo '<div class="post">'.$post.'</div>'; } ?> </div>
这会产生输出:
<div class="col-1"> <div class="post">one</div> <div class="post">three</div> <div class="post">five</div> </div> <div class="col-2"> <div class="post">two</div> <div class="post">four</div> <div class="post">six</div> </div>
如您所见,现在$ posts数组的元素以交替的方式组织在两列中。
You just need to apply logic for how you want the posts organized before you start iterating them.
Here's an example (this isn't functional, just a quick illustration):
<?php $col1 = array(); $col2 = array(); $posts = array('one', 'two', 'three', 'four', 'five', 'six'); foreach ($posts as $post) { $count++; $count % 2 === 1 ? array_push($col1, $post) : array_push($col2, $post); } ?> <div class="col-1"> <?php foreach ($col1 as $post) { echo '<div class="post">'.$post.'</div>'; } ?> </div> <div class="col-2"> <?php foreach ($col2 as $post) { echo '<div class="post">'.$post.'</div>'; } ?> </div>
This produces the output:
<div class="col-1"> <div class="post">one</div> <div class="post">three</div> <div class="post">five</div> </div> <div class="col-2"> <div class="post">two</div> <div class="post">four</div> <div class="post">six</div> </div>
As you can see, now the elements of the $posts array are organized in both columns in an alternating fashion.
相关问答
更多-
重叠divs(Overlapping divs)[2022-04-20]
我想你想要这样的东西: HTML -
Float divs到两边(Float divs to both sides)[2022-01-07]
请参阅: http : //jsfiddle.net/thirtydot/qdZWh/ HTML: CSS: div { width: 50px; height: 50px; outline: 1px dashed #666 } .left { float: left; ... -
在连接之前删除单击并触摸事件。 每次调用loopCalendar方法时,都会附加一个附加的事件处理程序。 On(document.getElementById(l),['click','touch'],function(e){})这是问题所在的行。 您需要通过删除附加的先前处理程序来反转此效果,或者您需要确保仅为每个元素调用一次。 Remove the click and touch event before you attach. An additional event handler gets atta ...
-
如何重复循环div(How to repeatedly loop through divs)[2022-05-08]
请尝试以下。 var yogNumber = 0; var yogs = document.querySelectorAll('.yog'); function next() { yogNumber++; if (yogs.length > yogNumber) { document.querySelector('.active').classList.remove('active'); yogs[yogNumber].classList.add('active'); ... -
ID的定义必须是唯一的。 你可以使用类来代替。 while($row = mysql_fetch_array($result)){ $output = "$row[id] - $row[name] - $row['email']"; echo $output; } 然后... $(".drag").effect("highlight", {}, 2000); IDs must be unique by definition. You can ...
-
您只需要在开始迭代之前应用逻辑来组织帖子的组织方式。 这是一个例子(这不是功能,只是一个快速说明):问题有点模糊,但我假设你真正想要做的只是改变每个第二个div的类left-grid和right-grid 。 在这种情况下,您不必重复整个div,只需更改类。 这可以在“柜台”( $i )的帮助下完成。 'scbleftfeatures' )); $i = 0; ?> have_posts()) : $featuresit ...
appedChild()覆盖div(appedChild() overwriting divs)[2022-12-08]
你的else只创建一个新元素 - 请注意它在循环之前只调用一次document.createElement('div') ? 然后,您覆盖该div的内容并调用document.body.appendChild(divs) ,但.appendChild()不会创建其他副本,而是移动现有元素。 您需要在else的for循环内添加对document.createElement('div')另一个调用。 let beans = ["1", "2", "3", ["4", "5", "6"]]; //Loop ...你可以这样做: var quotes = $('#container .quote'); function cycleQuotes () { var current = quotes.filter(".active"), next; if (current.length == 0 || (next = current.next().next()).length == 0 ) { // first iteration or last, select first two ...您需要使用.each()函数,然后选择每个父元素并仅对该单个元素的子元素进行数学.each() 。 试试这个 $('.colourbox').each(function(i) { // select visible children var visibleDivs = $(this).find('div').length; // use whatever width calculation you'd like... var targetWidth = 300 / visi ...相关文章
更多- java lambda表达式-JAVA8新特性
- ServletOutputStream cannot be resolved to a type
- 怎样用Struts2的lambda表达式取一个map集合的子集
- JAVA 正则表达式教程(超详细)三(续)
- JAVA 正则表达式教程(超详细)二(续)
- JAVA 正则表达式教程(超详细)一
- 正则表达式 - 语法
- 正则表达式 - 示例
- 快速了解正则表达式
- 【第五章】Spring表达式语言 之 5.4在Bean定义中使用EL—跟我学spring3
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。