2017-04-19 167 views
0

我目前正在寫一個ASP.Net MVC應用程序添加佔位符文本輸入元素CSHTML

我已經成功地在CSHTML而產生的輸入框。

@Html.EditorFor(model => model.Test, new { htmlAttributes = new { @class = "form-control"} }) 

我現在想從控制器中取出一個字符串的內容,並添加爲佔位符文本。我試過以下

@Html.EditorFor(model => model.Test, new { htmlAttributes = new { @class = "form-control", placeholder = @Html.DisplayFor(model => model.Test) } }) 

但是,設置佔位符,像這樣:placeholder="" 如果我改用@Html.DisplayNameFor它設置佔位符變量名Test,但我想實際的字符串內容。我知道可以使用Viewbag將文本傳遞給視圖,但必須有這樣的方式。

任何幫助,非常感謝。

+1

嘗試改變'佔位符= @ Html.DisplayFor(型號= model.Test>)用''佔位符= Model.Test'。 – Seididieci

+0

這給出了以下錯誤: System.NullReferenceException:'未將對象引用設置爲對象的實例。' System.Web.Mvc.WebViewPage .Model.get返回null。 – RichyJ89

+0

在您的控制器中,確保您將模型的實例傳遞給您的視圖。 – Seididieci

回答

0

不能使用@Html.DisplayFor()作爲佔位符,但可以使用Html.DisplayNameFor()

例子:

@Html.EditorFor(model => model.Test, new { htmlAttributes = new { @class = "form-control", @placeholder = "Your Place Holder" } }) 

OR

@Html.EditorFor(model => model.Test, new { htmlAttributes = new { @class = "form-control", placeholder = @Html.DisplayNameFor(model => model.Test) } }) 
+0

但這不是我想要的,但。這會將佔位符設置爲在cshtml文件中硬編碼的字符串。我想要的是把一個字符串變量的內容放在placeholder屬性中。 – RichyJ89

+0

可能是你尋找第二個選項。 – Ashiquzzaman

+0

將佔位符設置爲變量的名稱,而不是變量包含的字符串。 – RichyJ89

0

我認爲你需要添加[顯示(名字= 「文本」)]屬性在這樣的模式的正當性:

[Display (Name="Name Of Client:")] 
Public string Name {get; set;} 
0

在您傳遞給vi的模型中創建一個屬性EW。

將該字符串分配給該屬性。

Model.SomeName= YourVariableName; 

然後嘗試這樣的: -

@Html.EditorFor(model => model.Test, new { htmlAttributes = new { @class = "form-control", placeholder = @Model.SomeName }