2013-07-19 99 views
1

我有這個值:EditorFor助手:不顯示負值

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0}")] 
public int mCardNumber { get; set; } 

並在視圖中我渲染這樣的:

Card Number: @Html.EditorFor(_item => _item.mCardNumber, Model.mCardNumber)<br /> 

其原因是在於值綁定到我的模型。但是,如果我不能插入一個負值,仍然有可能導致負值。一個錯誤信息將被簡單地顯示出來。但我一直要求而不是允許編輯去負面。任何人都可以幫我做到這一點?

回答

0

那麼,我確實不得不取消editorFor。經過多次觀察,我最終添加了this plugin by TexoTela

因此,這裏是我的網頁的呈現方式:

@Html.TextBoxFor(_item => _item.mCardNumber, new { @class = "positive-integer" }) 

和它的作品!

+0

你能分享你的「正整數」類嗎? –

+0

只是看看我的答案中鏈接的插件,至今仍然像一個魅力 – hsim

1

你將需要利用一些JavaScript。將此JavaScript function添加到您的標記或共享.js文件。

function disallowNegativeNumber(e) 
{ 
    var charCode = (e.which) ? e.which : event.keyCode 
    if (charCode == 45) { 
     return false; 
    } 
    return true; 
} 

然後致電onkeypress="return disallowNegativeNumber(event)"。您可以通過TextBoxFor方法類型上的htmlAttributes參數添加該參數。比EditorFor更具體的那些。你會建立一個這樣的對象:

new { onkeypress = "return disallowNegativeNumber(event)" } 
+0

Yess :)一種涉及我從未做過的事情的新解決方案。哦,我會試試這個,並且很快回來:) – hsim

+0

哦,但是不可能爲編輯器添加htmlAttributeFor ... – hsim

+1

@HerveS,看起來你是對的。如果你想要一個文本框,不要使用'EditorFor',如'TextBoxFor'。 –