我有一个表名为Discount的表,它的模式如下:
主键DiscountID整数
FK CustomerID整数
金额
名称varchar(50)
因此,我显示了与客户相关的所有折扣。每个客户将有3个折扣记录。
在生成表单时,用于编辑的关联文本框的ID和名称必须是唯一的,才能正确处理。
示例
当我尝试使用xVal进行验证时,因为我的字段名与模式名“Amount_1”而不是“Amount”不匹配,所以不会验证该字段。
我怎么才能让它工作呢?
我不能将所有3个折扣合并为一个记录的唯一客户,因为有一些其他字段我遗漏了简化的例子。我需要在3行中为每个客户提供3个折扣。
下面是一些代码:
<form method="post" action="ProcessUpdate">
<table>
<tr> <td> Discount 1 </td> <td> <%= Html.TextBox("Amount_1") %></td></tr>
<tr> <td> Discount 2 </td> <td> <%= Html.TextBox("Amount_2") %></td></tr>
<tr> <td> Discount 3 </td> <td> <%= Html.TextBox("Amount_3") %></td></tr>
<tr> <td> <input type="submit" value="submit"/> </td> </tr>
</table>
</form>
<%= Html.ClientSideValidation<Discount>() %>这里是我的元数据
[MetadataType(typeof(DiscountMetaData))]
public partial class Discount
{
public class DiscountMetaData
{
[Required(ErrorMessage = " [Required] ")]
public string Amount { get; set; }
}
} 你有什么办法让它工作吗?
发布于 2009-12-02 17:14:40
我曾经尝试过使用前缀,这是如何实现的:
首先,您必须将文本框命名为具有不同的前缀,但具有相同的属性名称"Amount“,然后通过为每个前缀调用Html.ClientSideValidation三次将jquery验证器附加到每个字段。
<form method="post" action="ProcessUpdate">
<table>
<tr> <td> Discount 1 </td> <td> <%= Html.TextBox("discount1.Amount") %></td></tr>
<tr> <td> Discount 2 </td> <td> <%= Html.TextBox("discount2.Amount") %></td></tr>
<tr> <td> Discount 3 </td> <td> <%= Html.TextBox("discount3.Amount") %></td></tr>
<tr> <td> <input type="submit" value="submit"/> </td> </tr>
</table>
</form>
<%= Html.ClientSideValidation<Discount>("discount1") %>
<%= Html.ClientSideValidation<Discount>("discount2") %>
<%= Html.ClientSideValidation<Discount>("discount3") %>希望这能有所帮助
https://stackoverflow.com/questions/1827872
复制相似问题