質問のコメントの私のコメント、
Model をコントローラで設定してビューに渡していると思いますが、それはどのように設定されているのでしょう?
value は Model から設定するのが普通のやり方なのですが・・・
に返事がないので、そのあたりが不明ですが、こうすれば html input 要素の value 属性に設定できるという方法を回答として書いておきます。
@Html.EditorFor(model => model.YMD ... となっているように、それからレンダリングされる html input 要素の value 属性に設定される値は Controller から View に渡される Model から取得するのが基本です。
質問者さんのやり方のように @Html.EditorFor の引数で value = "2021/06/13" のように設定しても、model => model.YMD の方で上書きされてしまうようです。たぶん、質問者さんのケースでは Conroller から View には Model は渡していないので "" で上書きされたのだと思います。
なので、Controller から View に Model を渡せば、例えば下記のようにすれば、
** Controller / Action Method **
public ActionResult Value()
{
var model = new Category
{
CategoryID = 1,
CategoryName = "2021/06/13"
};
return View(model);
}
View
@model Mvc5App.Controllers.Category
・・・中略・・・
@Html.EditorFor(model => model.CategoryName, new { htmlAttributes = new { @class = "form-control" } })
・・・後略・・・
以下の通り、Controller / Action Method から渡した値が表示されます。もちろん、それからレンダリングされる html input 要素の value 属性に設定されます。
以下は本題とは関係ない話かもしれませんが念のため書いておきます。
HTML ヘルパー EditorFor から生成される html 要素に任意の属性を付与できるようになったのは MVC 5.1 からです。
class と違って、value は C# の予約語ではありませんので、@ を付与する必要はないです。