在ASP.NET MVC中,我可以让模型继承自IValidatableObject,在这种情况下我必须实现from bokeh.models import (
GMapPlot, GMapOptions, ColumnDataSource, Circle, DataRange1d, PanTool,
WheelZoomTool, BoxSelectTool
)
from bokeh.io import output_file, show, output_notebook
output_notebook()
map_options = GMapOptions(lat=30.29, lng=-97.73, map_type="roadmap", zoom=11)
plot = GMapPlot(
x_range=DataRange1d(), y_range=DataRange1d(), map_options=map_options
)
plot.title.text = "Austin"
plot.api_key = "INSERT PERSONAL GOOGLE API KEY"
completed_lats = [30.265872,30.2900002]
completed_longs = [-97.749270,-97.733322]
completed_source = ColumnDataSource( data=dict(
lat=completed_lats,
lon=completed_longs,))
completed_dots = Circle(x="lon", y="lat", size=50, fill_color="blue",
fill_alpha=0.1, line_color=None)
plot.add_glyph(completed_source, completed_dots)
plot.add_tools(PanTool(), WheelZoomTool(), BoxSelectTool())
show(plot)
为什么这个方法有参数validationContext?我可以使用关键字'这个&#39 ;?来引用会员使用validationContext有什么好处吗?
答案 0 :(得分:2)
System.IServiceProvider
提供了可用于更复杂验证的其他属性和方法,这些验证可能与不属于模型的值相关联。例如,您可能希望验证模型的属性在数据库中是唯一的,因此您可以将服务(实现ValidationContext
)注入IServiceProvider
构造函数,或者添加包含其他内容的字典使用this overload进行验证的值,您可以在Validator.TryValidateValue()方法中使用该值。
在this Gist中显示了在mvc项目中添加ValidationContext
到IValidatableObject
的示例。
作为旁注,实现IClientValidatable
只会为您提供服务器端验证,您确实应该使用实现text
的验证属性来为您提供客户端验证。如果内置属性不合适,那么您可以按照The Complete Guide To Validation In ASP.NET MVC 3 - Part 2中的讨论创建自己的属性。