2015-07-09 24 views
0
  • 我正在使用實體框架使用簡單的MVC 4應用程序。如何使用Entity Framework將空/字符串賦給MVC Razor中的int類型?

    • 在我的視圖中,我使用webgrid顯示錶格中的數據。
    • 查看還有文本框(EditorFor)用於保存表中的任何新記錄。
    • 我正在使用文本框的局部視圖,因爲在頁面啓動時,文本框應保持爲空。
    • 5箇中,兩列是整數類型。
    • 爲了使文本框空最初我使用一個新的對象 -

      @if {
      數據模型=新EntityFrDemo.Models.FacultyDetails {DepartmentID的= 0,名稱(dataGrid.HasSelection!) =「」,Subject =「」,YrsExp = 0,Email =「」};

      Html.RenderPartial(「〜/ Views/Shared/_FacultyDetails.cshtml」,Datamodel); }

      // ------------------------------------------ ------------------------------

    @ Html.LabelFor(型號=> model.DepartmentID) @ Html.EditorFor(型號=> model.DepartmentID) @ Html.ValidationMessageFor(型號=> model.DepartmentID)

    // ----------------- -------------------------------------------------- ---------- enter image description here

    • 因此,我能夠使我的箱子爲空,但整數類型框'0'即將到來,因爲我只能分配零。

所以,我怎麼可以覆蓋/疊加的整數值類型框爲空字符串類型,以便箱只有在情況下,當在初始階段沒有選定的行,即仍然爲空...?

+1

聽起來你應該使用'int?'而不是'int'。 –

+0

不,我不能使用它,因爲實體框架已經在自動生成的Entitiy類中創建了類型爲integer的'DepartmentID'。 我試過用它,但它給出了類型int的鑄造錯誤?整數 – Koder101

+1

然後創建一個viewmodel ... –

回答

1

當您使用@ Html.EditorFor()與int值,剃刀產生這樣

<input type="number" name="propertyName" id="propertyName" value="propertyValue" /> 

一個HTML標籤如果您沒有設置爲INT屬性的值,默認int值爲零。要在html標記中設置另一個值,可以在不使用Razor的情況下編寫它,也可以像下面的代碼一樣設置值。

@Html.EditorFor(model => model.DepartmentID, new { htmlAttributes = new { @Value = "" } }) 

注意:它是大寫字母「V」,而不是小寫字母「v」。

+0

謝謝,但它沒有奏效。創建一個ViewModel會更好。 – Koder101

+0

@Zeeshaan沒有工作?你有錯誤信息嗎?或者文本框仍然呈現爲零? –

+0

文本框仍然呈現爲零,沒有錯誤。 – Koder101

相關問題