私はユーザーがフォームを編集できるアプリケーションを持っています。これは私のコードです:asp.net mvc:mvc形式を無効にする
コントローラとビューモデル:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Edit(MyGlobalObject MyGlobalObject)
{
MyGlobalObject.Save();
return View();
}
}
public class MyGlobalObject
{
public MyObjectToEdit MyObjectToEdit { get; set; }
}
public class MyObjectToEdit
{
public int MyProperty { get; set; }
public string MyProperty1 { get; set; }
public bool MyProperty2 { get; set; }
}
マイかみそりビュー:すべてがうまく機能しているTestAppliWeb.Controllers.MyGlobalObject
@using (Html.BeginForm("Edit", "HomeController"))
{
@Html.AntiForgeryToken()
@Html.EditorFor(m => m.MyObjectToEdit)
}
@model。しかし、このフォームには、MyObjectToEditのMyProperty2に依存する特定の条件に応じて、このフォームに新しい機能を追加したいと思いますが、フォームを表示し続けますが無効にします。すべてのフォームをユーザーに表示する必要があります何かを編集して保存をクリックします。
MyProperty2がtrueの場合、フォームは引き続き編集可能です。そうでない場合は、フォームを無効にする必要があります。しかし、私は私の剃刀のフォームのレンダリングでコードの最小限に抑える方法を知りません。私には解決策がありますが、それはあまりにも "汚れている"ようです:私はjavascriptとCSSでフォームのすべての要素を無効にしました。
フォームを無効にするには、mvc htmlヘルパーなどがあり、これを使ってかみそりビューに書き込むことができますか?あなたの助けを事前に
おかげ
角度を使って解決するかのように見える – NicoRiff
無効なフォームは意味がありません。条件に基づいてコントローラからの単純なテキストのみで別のビューを表示する必要があります。 –
_I javascriptおよびcss_それのどこが悪いんだい? '$("。myform-item ")。prop(" disabled "、true)'。しかし、実際には、編集が必要になるまでフォームを表示しないでください。 – Jasen