小编Mar*_*ues的帖子

ASP.NET MVC:使用没有IClientValidatable的属性实现客户端验证

如何在没有实现的情况下使用客户端验证创建自定义验证属性IClientValidatable

System.ComponentModel.DataAnnotations.RequiredAttribute客户端如何验证?

这样做的原因是因为我在另一个项目中使用类中的对象作为视图中的模型,我不想添加System.Web.MVC对该项目的引用.

编辑以添加更多信息:

  • 我知道这IClientValidatable用于向HTML添加自定义属性,稍后将通过不引人注意的验证使用.

  • 我知道我需要添加javascript代码才能在客户端进行验证.

我不知道的是如何使用自定义验证属性中的信息向HTML添加必要的属性,以便进行不显眼的验证.

这是我的自定义验证属性:

public class RequiredGuidAttribute : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        Guid? guidValue = value as Guid?;

        if (guidValue == null)
            return false;

        return guidValue != Guid.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我应用了属性的属性:

    [RequiredGuid(ErrorMessageResourceType = typeof(ClientOrderResources), ErrorMessageResourceName = "RequiredShippingMethod")]
    public Guid ShippingMethodId
    {
        get { return GetProperty(ShippingMethodIdProperty); }
        set { SetProperty(ShippingMethodIdProperty, value); }
    }
Run Code Online (Sandbox Code Playgroud)

最后我在视图中为该属性渲染隐藏的输入Html.HiddenFor.

现在,如何从属性中获取错误消息以将其应用于HTML?我应该自己动手使用Reflection还是有更好的方法?

然后我如何告诉Html.HiddenFor使用该信息为HTML添加必要的属性?

validation asp.net-mvc jquery-plugins

5
推荐指数
2
解决办法
3930
查看次数

如何在没有javascript的MVC-Razor中使用rowspan?

如何在Razor视图中使用rowspan合并表格中的单元格?

  • 不使用javascript/jQuery.
  • 表的源是一个IEnumerable.
  • 源中的某些项目在某个字段中具有相同的值,而这些项目是我们要在一个单元格中合并的项目.
  • 我们不知道给定值重复多少次.

生成的HTML应该是这样的:

<table>
    <tr>
        <td rowspan="2">Column 1 row 1</td>
        <td>Column 2 row 1</td>
    </tr>
    <tr>
        <td>Column 2 row 2</td>
    </tr>
    <tr>
        <td rowspan="3">Column 1 row 3</td>
        <td>Column 2 row 3</td>
    </tr>
    <tr>
        <td>Column 2 row 4</td>
    </tr>
    <tr>
        <td>Column 2 row 5</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

编辑以添加数据源和所需结果:

数据源可能类似于带有类别的产品.例如:

分类

  • 电子产品
  • 杂货

制品

  • 手提电脑(电子)
  • iPod(电子)
  • 电视(电子)
  • 咖啡(杂货)
  • 饼干(杂货)

结果

????????????????????????
? Electronics ? Laptop ?
?             ? iPod   ?
?             ? TV     ?
????????????????????????
? Groceries   ? Coffee ? …
Run Code Online (Sandbox Code Playgroud)

html-table razor asp.net-mvc-3

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