Ich habe eine Anwendung, in der ein Benutzer ein Formular bearbeiten kann. Dies ist mein Code:asp.net mvc: deaktivieren mvc form
-Controller und Ansichtsmodell:
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; }
}
Mein Rasierer Ansicht:
@model TestAppliWeb.Controllers.MyGlobalObject
@using (Html.BeginForm("Edit", "HomeController"))
{
@Html.AntiForgeryToken()
@Html.EditorFor(m => m.MyObjectToEdit)
}
Alles funktioniert gut. Aber ich möchte ein neues Feature in dieses Formular bringen, abhängig von einer bestimmten Bedingung, die von MyProperty2 von MyObjectToEdit abhängig ist. Ich möchte das Formular weiterhin anzeigen, aber es deaktivieren: das Formular muss dem Benutzer angezeigt werden, aber er kann nicht Bearbeiten Sie alles und klicken Sie auf Speichern.
Wenn MyProperty2 true ist, kann das Formular weiterhin bearbeitet werden, andernfalls muss das Formular deaktiviert werden. Aber ich weiß nicht, wie ich es mit einem Minimum an Code in meiner Rasierklinge die Wiedergabe der Form beeinflussen kann. Ich habe eine Lösung, aber es scheint zu "unrein": Ich habe alle Elemente des Formulars mit Javascript und CSS deaktiviert.
Gibt es irgendwelche mvc HTML-Helfer oder etwas ähnliches in der Rasierer Ansicht zu schreiben, um das Formular zu deaktivieren.
Vielen Dank im Voraus für Ihre Hilfe
Es scheint etwas zu lösen mit eckigen – NicoRiff
Eine deaktivierte Form ist sinnlos, und Sie sollten eine andere Ansicht mit einfachem Text nur aus dem Controller basierend auf der Bedingung anzeigen –
_I deaktiviert alle Elemente des Formulars mit Javascript und CSS_ Was stimmt damit nicht? '$ (". myform-item "). prop (" deaktiviert ", true)'. Aber, wirklich, zeigen Sie einfach ein Formular nicht an, bis eine Änderung notwendig ist. – Jasen