标签: html-helper

DateTime字段和Html.TextBoxFor()帮助器.如何正确使用?

我的模型中有一个DateTime字段.如果我尝试以这种方式在强类型局部视图中使用此字段

<%= Html.TextBoxFor(model => model.DataUdienza.ToString("dd/MM/yyyy"), new { style = "width: 120px" })  %>
Run Code Online (Sandbox Code Playgroud)

我将在运行时收到以下编译错误

System.InvalidOperationException : Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Run Code Online (Sandbox Code Playgroud)

无论如何,如果我使用它删除格式,ToString("dd/MM/yyyy"),一切正常,但字段使用我根本不需要的时间部分格式化.

我在哪里做错了?处理这个问题的正确方法是什么?

谢谢你的帮助!

编辑

这是模型类中的属性声明

[Required]
[DisplayName("Data Udienza")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime DataUdienza { get; set; }
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc html-helper

21
推荐指数
3
解决办法
5万
查看次数

警告 - 项目更新后无法识别html.helpers

我最近将我的项目更新为mvc 5,EF 6.我通过包控制台管理器(update-package)更新了所有软件包.

现在我在每个视图/局部视图/布局中看到大量关于html助手的警告.

这些是一些错误:

  • "ViewBag"这个名称在当前上下文中不存在
  • "Styles"这个名称在当前上下文中不存在
  • 当前上下文中不存在"脚本"这个名称
  • 'System.Web.WebPages.Html.HtmlHelper'不包含'Partial'的定义,也没有扩展方法'Partial'接受类型'System.Web.WebPages.Html.HtmlHelper'的第一个参数可以找到(你是吗?)缺少using指令或程序集引用?)
  • 'System.Web.WebPages.Html.HtmlHelper'不包含'ActionLink'的定义......
  • 'System.Web.WebPages.Html.HtmlHelper'不包含'BeginForm'的定义...
  • 'System.Web.WebPages.Html.HtmlHelper'不包含'AntiForgeryToken'的定义......

这是views/webconfig:

    <?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization"/>
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>

  <system.web>
    <httpHandlers> …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc html-helper web-config razor

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

使用ASP.NET MVC 3 Helpers渲染带有title属性的span标记

可以将HTML title属性添加到输入标记,如下所示:

@Html.TextBoxFor(model => model.Name, new { title = "Customer name" })
Run Code Online (Sandbox Code Playgroud)

静态文本是否有类似的帮助?随着@Html.DisplayFor(model => model.Name)我可以呈现从模型属性的文本.如何添加HTML属性以便我获得如下span呈现的标记:

<span title="Customer name">ABC</span>
Run Code Online (Sandbox Code Playgroud)

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

20
推荐指数
2
解决办法
3万
查看次数

MVC助手 - 使用@URL进行图像src?

我正在使用MVC3并且有一个简单的帮助器,它为一个状态应用程序绘制了一个带有一些文本和图标的盒子.一个片段:

@helper Tile(string ID)
 {
 <div class="front defaulttile"> 
    <div class="notifybar" id="NotifyBarID" >
    <img alt="" src="@Url.Content("~/Images/img.jpg")" style="display: inline; margin-right: 5px;" />
    <p class="topstatusbartext" id="NotifyBarTextID" >Status bar text</p>
    </div>
etc...
Run Code Online (Sandbox Code Playgroud)

将@ Url.Content用于图像src会很棒,但是我得到一个错误,它不可用.有什么我可以添加或更改使用它吗?一旦应用程序在服务器上,我宁愿不需要处理路径并遇到问题.

谢谢!

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

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

HtmlHelper扩展方法与局部视图?

我很好奇什么时候建议使用HtmlHelper扩展方法以及何时使用局部视图?在许多情况下,他们似乎同样有资格.

asp.net-mvc html-helper asp.net-mvc-partialview

19
推荐指数
3
解决办法
4451
查看次数

Asp.Net MVC 2 Html.TextBoxFor为模型的DateTime属性指定格式字符串的最佳方法

正如问题标题所解释的那样,在DateTime通过Html.TextboxFor方法显示属性值时,指定我的视图使用的格式的最佳方法是什么.

默认显示包括我真正只想显示日期的日期和时间.

谢谢

asp.net-mvc formatting html-helper asp.net-mvc-2

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

如何将参数与@ url.action一起传递给控制器

我有以下代码片段我想用@ url.action传递data-id ="0",我该怎么做

<a class="v-patient pointer" data-id="0" href="@Url.Action("View1", "Task")">View Patient</a></td>
Run Code Online (Sandbox Code Playgroud)

我的任务控制器

public ActionResult View1(string id)
        {
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

url controller html-helper razor

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

ASP.NET MVC 3 HtmlHelper异常无法识别继承接口上的ModelMetadata

升级到MVC 3 RTM后,我得到了一个以前工作的例外.

这是场景.我有几个使用相同底层接口IActivity和IOwned的对象.

IActivity implements IOwned (another interface)

public interface IActivity:IOwned {...}

public interface IOwned 
{
    int? AuthorId {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我有一个局部视图,它使用IActivity从其他具体的部分重用.

以下是Activity Partial的定义.

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IActivity>" %>
<%: Html.HiddenFor(item => item.AuthorId) %>
Run Code Online (Sandbox Code Playgroud)

但是,它会引发异常.它在ModelMetadata中找不到AuthorId.

我猜测在之前的版本中它查看了IActivity实现的接口.

任何想法,建议,到处都没有重复类似的接口?

复制下面的堆栈跟踪.

[ArgumentException: The property IActivity.AuthorId could not be found.]
   System.Web.Mvc.AssociatedMetadataProvider.GetMetadataForProperty(Func`1 modelAccessor, Type containerType, String propertyName) +498313
   System.Web.Mvc.ModelMetadata.GetMetadataFromProvider(Func`1 modelAccessor, Type modelType, String propertyName, Type containerType) +101
   System.Web.Mvc.ModelMetadata.FromLambdaExpression(Expression`1 expression, ViewDataDictionary`1 viewData) +393
   System.Web.Mvc.Html.InputExtensions.HiddenFor(HtmlHelper`1 htmlHelper, Expression`1 expression, IDictionary`2 htmlAttributes) +57
   System.Web.Mvc.Html.InputExtensions.HiddenFor(HtmlHelper`1 htmlHelper, Expression`1 expression) +51
   ASP.views_shared_activity_ascx.__Render__control1(HtmlTextWriter …
Run Code Online (Sandbox Code Playgroud)

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

18
推荐指数
5
解决办法
4913
查看次数

如何为Html.LabelFor <>(MVC Razor)指定ID

可能重复:
属性的客户端ID(ASP.Net MVC)

有没有办法让Razor在使用Html.LabelFor <>帮助器时为Label元素呈现ID属性?

例:

.cshtml page
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.Foo)
@Html.TextBoxFor(m => m.Foo)
}
Run Code Online (Sandbox Code Playgroud)

呈现页面

<form ...>
<label for="Foo" id="Label_Foo" />
<input type="text" name="Foo" id="Foo" />
</form>
Run Code Online (Sandbox Code Playgroud)

仅供参考 - 我想在标签上添加ID的唯一原因是CSS设计.我更喜欢用ID引用Label而不是将Label包装在一个块(即div)中,然后设置块的样式.

html-helper razor asp.net-mvc-3

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

"this"关键字在方法参数中的含义是什么?

namespace System.Web.Mvc.Html
{
    // Summary:
    //     Represents support for HTML in an application.
    public static class FormExtensions
    {
        public static MvcForm BeginForm(this HtmlHelper htmlHelper, string actionName, string controllerName);
...
    }
}
Run Code Online (Sandbox Code Playgroud)

我注意到,BeginForm方法中第一个参数前面的'this'对象似乎不被接受为参数.看起来在真正的BeginForm方法中的功能如下:

BeginForm(string actionName, string controllerName);
Run Code Online (Sandbox Code Playgroud)

省略第一个参数.但它实际上以隐藏的方式以某种方式接收第一个参数.能告诉我这个结构是如何工作的吗?我实际上正在探索MVC 4互联网示例.谢谢.

c# extension-methods html-helper

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