我的View
中有很多字段被jquery MaskedInput
屏蔽。它们被掩盖,因为用户需要使用掩码来查看它,但我需要在提交数据库中的值之前删除这些掩码。
我不想搞砸代码,因为这是我项目中最重要的Views
之一。
那么最好的做法是什么?
假设我有Model
:
public class MyViewModel {
public string MyMaskedProperty { get; set;}
}
此代码位于View
:
@Html.TextboxFor(x=> x.MyMaskedProperty, new { @class="myMask"} )
我应该:
View
上的掩码Model
上的模板,更改get
的{{1}}以返回未屏蔽的值MyMaskedProperty
上的面具,因为只需要从此处及以后取消屏蔽提前致谢!
答案 0 :(得分:4)
类似到第二个选项,您可以简单地向视图模型添加只读字段:
public class MyViewModel {
public string MyMaskedProperty { get; set;}
public string MyUnmaskedProperty
{
get
{
// return an "unmasked" version of MyMaskedProperty
}
}
}
即使您要使用JavaScript修改该值,您也无法真正隐含地信任它,并且无论如何都希望验证服务器端。在控制器中执行此操作并不理想,因为这只是需要在整个地方重复的过程代码。遵循“让你的控制器保持轻盈和你的模型沉重”的建议,这个逻辑真的属于模型。
模型本身可以从任何版本的数据构建。只要用于构建模型的信息可以有效地构造它,那么模型就可以暴露各种操作和属性来操纵和查看该信息。