标签: html-helper

从Html.RouteLink生成绝对URL

@Html.RouteLink("Validate", "ValidateEmail", new { email = Model.Email, key = Model.Key })用来生成一个链接,我通过电子邮件发送给新注册的用户.当我尝试这个时,我发现,wops,它没有生成绝对的URL ...这意味着我有一个类似的链接<a href="/Membership/Validate/email.to%40you.com?key=someKey">Validate</a>.但是,当我在电子邮件中发送此链接时,它(原因)将无法正常工作,那么我该如何改进呢?有什么简单的解决

asp.net-mvc routes html-helper asp.net-mvc-3

4
推荐指数
1
解决办法
2047
查看次数

c#如何计算"m"来自何处(m => m.SomeProperty)?

例如,在MVC应用程序中,我可以使用Html帮助程序创建如下标签:

@Html.LabelFor(m => m.ProductName)
Run Code Online (Sandbox Code Playgroud)

我没有在任何地方声明变量"m",但IDE会自动确定我正在尝试做什么.IDE比我更了解我的代码,这有点令人不安.我想解决这个问题.

我大多想知道它是如何知道如何引用我的模型的.

编辑:谢谢你的所有答案.

所以,"Html"是HtmlHelper的一个实例."Html"是ViewPage基类的成员.它的值在ViewPage基类的InitHelpers()方法中设置.HtmlHelper构造函数将ViewPage的ViewContext作为参数.ViewContext知道我正在使用的模型.LabelFor是HtmlHelper类的扩展方法.这就是lambda表达式知道如何引用我的模型的原因.

点已连接.谢谢!

c# asp.net-mvc lambda html-helper

4
推荐指数
1
解决办法
389
查看次数

mvc HtmlHelper DisplayFor函数如何从lambda函数中提取完整的属性路径?

我看到mvc正在查找从Html.DisplayFor方法中的lambda函数传递给它的变量的名称:

@Html.HiddenFor(model => myModel.propA.propB)
Run Code Online (Sandbox Code Playgroud)

可以生成HTML之类的东西:

<input id="myModel_propA_propB" type="hidden" value="" >
Run Code Online (Sandbox Code Playgroud)

它显然是使用反射,但它超出了我.有人能填补我吗?

另外,是否可以创建一个HTML辅助函数,它使用完全属性引用而不是lambda函数来完成类似的操作?即.

@Html.HiddenFor(myModel.propA.propB)
Run Code Online (Sandbox Code Playgroud)

...并且帮助程序可以传递完整的"myModel.propA.propB"引用而不仅仅是propB的值?是一个lambda函数,一个奇怪的.net解决方法来完成这类任务,或者它实际上是所有编程规则的首选方法.

reflection asp.net-mvc html-helper

4
推荐指数
1
解决办法
766
查看次数

在Model上使用HtmlHelper在返回的错误中插入链接

我正在努力CakePHP并试图了解使我的应用程序保持一致和合乎逻辑的最佳方法.

现在我正在尝试Model data validation处理和处理验证错误view,我怀疑如果我想在返回的错误中插入一些链接,我应该怎么做,例如忘记密码.

HtmlHelper在模型中使用(如果可能的话)在我的应用程序中返回一致的链接是好的,还是我应该考虑另一种方式?

<?php
App::import('Helper', 'Html');
class User extends AppModel {
    var $name = 'User';
    var $validate = array (
        'email' => array (
            'checkEmail' => array (
                'rule' => array('email', true),
                'message' => 'Email not valid message.'
            ),
            'checkUnique' => array (
                'rule' => 'isUnique',
                'message' => 'This email is allready in the db, if you forgot the password, '.(string)$this->Html->link('click here', array('controller' => 'users', 'action' => 'password-recover')).'.'   
            )
    )
    // …
Run Code Online (Sandbox Code Playgroud)

cakephp html-helper model

4
推荐指数
1
解决办法
2200
查看次数

从自定义HTML帮助程序访问WebViewPage

我有一个ASP.NET MVC 3 Razor Web应用程序.

我有一个WebViewPage扩展名:

public static bool Blah(this WebViewPage webViewPage)
{
   return blah && blah;
}
Run Code Online (Sandbox Code Playgroud)

我想从我的HtmlHelper扩展程序访问这个:

public static MvcHtmlString BlahHelper(this HtmlHelper htmlHelper, string linkText, string actionName)
{
   // how can i get access to the WebViewPage extension method here?
}
Run Code Online (Sandbox Code Playgroud)

WebViewPage如果必须的话,我当然可以复制扩展的功能,但只是想知道是否可以从HTML帮助程序访问它.

asp.net-mvc html-helper viewpage razor asp.net-mvc-3

4
推荐指数
1
解决办法
2586
查看次数

MVC3,Razor,Html.TextAreaFor():调整高度以适应内容

我目前在视图中使用以下代码来调整Html.TextAreaFor()的高度以适应其内容.有没有明显更好和/或更简洁的方法来做到这一点?

...
int width = 85;
int lines = 1;
string[] arr = Model.Text.Split(new string[] {"\r\n", "\n", "\r"}, StringSplitOptions.None);
foreach (var str in arr)
{
    if (str.Length / width > 0)
    {
        lines += str.Length / width + (str.Length % width <= width/2 ? 1 : 0);
    }
    else
    {
        lines++;
    }
}
@Html.TextAreaFor(m => m.Text,
                  new
                  {
                      id = "text",
                      style = "width:" + width + "em; height:" + lines + "em;"
                  })

...
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc html-helper razor

4
推荐指数
1
解决办法
1万
查看次数

Html帮助器显示没有标签的显示名称属性

我有这个:

[Display(Name = "Empresa")]
public string Company{ get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的aspx中我有:

<th><%: Html.LabelFor(model => model.Company)%></th>
Run Code Online (Sandbox Code Playgroud)

这会产生:

<th><label for="Company">Empresa</label></th>
Run Code Online (Sandbox Code Playgroud)

是否有任何html帮助扩展只显示没有标签的display属性,只显示纯文本?我想要的输出是这样的:

<th>Empresa</th>
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑

我按照建议尝试了DisplayFor或DisplayTextFor,但它们无效,因为它们生成:

<th>Amazon</th> 
Run Code Online (Sandbox Code Playgroud)

它们返回属性的值...我想要Display属性中的名称.

html c# asp.net-mvc html-helper

4
推荐指数
1
解决办法
6716
查看次数

Ruby on Rails link_to路径路径,同时保留原始查询字符串参数

我有一个像http://example.com/?sort=pop这样的网址

在我看来,我正在使用 link_to category.name, categories_path(category)

如何保留请求URL上可能已存在的任何查询字符串参数?

因此,最终的链接网址为http://example.com/categories/1?sort=pop

html-helper ruby-on-rails

4
推荐指数
1
解决办法
4023
查看次数

如果在测试时在System.Web.UI.Util中出现异常,如何对我的HtmlHelper扩展方法进行单元测试?

嗯...问题更复杂,然后问题标题说.首先,我有一个HtmlHelper的扩展方法,它根据当前的路由参数生成带参数的html链接.也就是说,如果我在页面上.../page?param1=val1&param2=val2,当我调用我的方法ActionQuryLink来生成链接时,@Html.ActionQuryLink("link text", "action", new { param3 = "value3" })我会得到一个链接<a href=".../page?param1=val1&param2=val2&param3=value3">link text</a>.好吧,扩展类本身是:

public static class ActionLinkHelper
    {
        public static MvcHtmlString ActionQueryLink(this HtmlHelper htmlHelper, string linkText, string action)
        {
            return (ActionQueryLink(htmlHelper, linkText, action, null, null));
        }
        public static MvcHtmlString ActionQueryLink(this HtmlHelper htmlHelper, string linkText, string action, object routeValues)
        {

            /*line 16*/return (ActionQueryLink(htmlHelper, linkText, action, routeValues, null));
        }

        public static MvcHtmlString ActionQueryLink(this HtmlHelper htmlHelper, string linkText, string action, object routeValues, IDictionary<string, object> htmlAttributes)
        {
            var …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing html-helper moq asp.net-mvc-3

4
推荐指数
1
解决办法
1989
查看次数

用于字段的ASP.NET MVC内联帮助程序

我需要一个通用的内联帮助器来显示字段.

这是我目前的情况:

@helper DisplayField(Func<MyModel, string> field)
{
    if (string.IsNullOrWhiteSpace(field(Model)) == false)
    {
        <div class="row"> @field(Model) </div>     
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

@DisplayField(m => m.Name)
@DisplayField(m => m.PhoneNumber)
Run Code Online (Sandbox Code Playgroud)

我不知道如何在帮助器中显示Label(DisplayAttribute).请帮忙.

c# asp.net-mvc html-helper expression-trees razor

4
推荐指数
1
解决办法
1805
查看次数