私はこれを持っています:
@Html.TextBoxFor(cModel => cModel.Value, new { id = "txtbLimit", @type = "int" })
そして、ユーザーがそこに入れるものが整数であることを確認したいと思います。
どうやってやるの?
編集:モデルの値でこのテキストボックスを解析しないので、モデルの検証は私が望むものではありません
EDIT2:
モデル:
public class StorageConfigurationModel
{
[Required]
public int QueueMonitorConfigurationsID { get; set; }
[Required]
public PathType QueueMonitorConfigTypeName { get; set; }
[Required]
public string Location { get; set; }
[Required]
public UnitType QueueMonitorValueTypeName { get; set; }
[Required]
public ThresholdType Threshold { get; set; }
[Required]
[RegularExpression(@"\d*")]
public int Value { get; set; }
}
public enum PathType
{
Path
}
public enum UnitType
{
MB, GB, TB, Files, Percentage
}
public enum ThresholdType
{
Upper, Lower
}
解析機能:
private static StorageConfigurationModel BindToModel(int id, string pathType, string threshold, string valueType, string location, int limit)
{
return new StorageConfigurationModel
{
QueueMonitorConfigurationsID = id,
QueueMonitorConfigTypeName = (PathType)Enum.Parse(typeof(PathType), pathType),
Location = Convert.ToString(location.Trim()),
Value = Convert.ToInt32(limit),
QueueMonitorValueTypeName = (UnitType)Enum.Parse(typeof(UnitType), valueType),
Threshold = (ThresholdType)Enum.Parse(typeof(ThresholdType), threshold)
};
}
したがって、すべてのデータをビューに入れて [追加] をクリックしても、何もトリガーされません。
これで、モデルバインダーを呼び出す関数を呼び出します。
$.post('@Url.Action("AddUpdateConfigs")',
{id: @Model.QueueMonitorConfigurationsID , pathType: $('#ddlConfigTypeName').val(), threshold:$('#ddlThreshold').val(), valueType:$('#ddlValueTypeName').val(), location: $('#txtbLocation').val(), limit: $('#txtbLimit').val(), config: $('#NewOrUpdate').val() },
function(data){
if (!data.Success){
alert(data.Description);
}
else{
//$('#gridView').load('/Storage/gvConfigurations');
$.get('@Url.Action("gvConfigurations", "Storage")',null,function(data){$('#gridView').html(data);},'html');
}
},'json');