加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – ASP.NET MVC强类型HTML帮助程序

发布时间:2020-12-16 09:16:54 所属栏目:asp.Net 来源:网络整理
导读:让我们走这一行:@ Html.LabelFor(m = m.UserName) 这是在这一行的页面上:@model CurrencyMvc.Models.RegisterModel 我假设当页面视图呈现LabelFor时,会自动调用LabelFor并引用所描述的模型,并且Lambda函数告诉它如何从模型中获取所需的信息? 我不清楚为什
让我们走这一行:@ Html.LabelFor(m => m.UserName)
这是在这一行的页面上:@model CurrencyMvc.Models.RegisterModel

我假设当页面视图呈现LabelFor时,会自动调用LabelFor并引用所描述的模型,并且Lambda函数告诉它如何从模型中获取所需的信息?

我不清楚为什么我们在传递实际值时传递函数,例如m.Username.

哦,当这个帮手叫“m”来自哪里?

解决方法

I assume that when the page view renders LabelFor is called
automatically with a reference to the model described,and that the
Lambda function tells it how to get the info it needs from the model?

我不完全确定我对这部分你的意思是什么,我想你的意思是@LabelForknows如何使用哪种型号?

是的,如果你看看这样的syntax:

public static MvcHtmlString LabelFor<TModel,TValue>(
    this HtmlHelper<TModel> html,Expression<Func<TModel,TValue>> expression
)

您可以看到第一个参数以此开头,这使其成为一种扩展方法.当您添加行@model CurrencyMvc.Models.RegisterModel时,此HtmlHelper< TModel>成为您的RegisterModel.

Its not clear to me why we’re passing a function in when we could pass
the actual value e.g. m.Username.

大多数时候,“lambda表达式”仅仅是Func< T>.但是使用剃刀@Html.xfor(例如@Html.LabelFor),你传入一个Expression<Func<TModel,TValue>>,这是一个lambda表达式的树数据结构.用外行人的话说;一种未编译的Func.

如果您传入m.Username,则该方法只会包含“Dale Burrell”.但是,例如,html文本框生成为

<input type="text" name="Username" value="Dale Burrell">

如您所见,它实际上需要m.Username变量名

Oh and when this helper is called where does “m” come from?

那只是一个变量.就像foreach(数据集中的var m){}“m来自哪里?” – 你做了.您可以用任何东西替换m

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读