2016-07-22 20 views
0

Ich mache MVC ASP.NET App und ich bin Neuling dazu kann mir bitte jemand sagen, wie man Wert von Checkbox Bool in String konvertieren und wo dies in Teilklasse oder in Controller zu tun? Checkbox mark is shown in my tableWie konvertiert man den Wert von Checkbox Bool in String kann mir jemand ASP.NET MVC helfen?

// GET: InspekcijskeKontrole/Create 
    public ActionResult Create() 
    { 
     ViewBag.InspekcijskoTijeloId = new SelectList(db.InspekcijskoTijeloes, "InspekcijskoTijeloId", "NazivInspekcijskogTijela"); 
     ViewBag.ProizvodId = new SelectList(db.Proizvods, "ProizvodId", "NazivProizvoda"); 

     return View(); 
    } 

    // POST: InspekcijskeKontrole/Create 
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598. 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Create([Bind(Include = "InspekcijskoTijeloId,ProizvodId,DatumInspekcijskeKontrole,Rezultat,ProizvodSiguran,InspekcijskaKontrolaId")] InspekcijskaKontrola inspekcijskaKontrola) 
    { 

     if (ModelState.IsValid) 
     { 
      db.InspekcijskaKontrolas.Add(inspekcijskaKontrola); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     ViewBag.InspekcijskoTijeloId = new SelectList(db.InspekcijskoTijeloes, "InspekcijskoTijeloId", "NazivInspekcijskogTijela", inspekcijskaKontrola.InspekcijskoTijeloId); 
     ViewBag.ProizvodId = new SelectList(db.Proizvods, "ProizvodId", "NazivProizvoda", inspekcijskaKontrola.ProizvodId); 
     return View(inspekcijskaKontrola); 
    } 
+1

möchten Sie Boolean in Zeichenfolge konvertieren? Warum rufen Sie nicht 'ToString()' Methode für Ihren booleschen Wert auf? – Shyju

+0

Ich möchte etwas schreiben wie das Produkt ist sicher, wenn die Checkbox wahr ist – Jhony2

+0

Entschuldigung! Was bedeutet das ? Warum denken Sie, dass das Aufrufen von 'ToString()' auf einem booleschen Wert Ihr Produkt unsicher macht? – Shyju

Antwort

-1

Sie können ToString() Methoden auf Ihrem boolean Wert aus dem Modell verwenden. Sie können dies in der Controller-Aktionsmethode tun.

+1

Bitte lesen Sie die Kommentare unter der Frage. Das OP möchte eine Zeichenfolge (_ "das Produkt ist sicher" _) drucken, wenn eine bestimmte Bool-Eigenschaft "wahr" ist. – CodeCaster

-1

Die Boolean hat eine ToString() Methode. Also:

, wenn Sie eine Bedingung machen wollen auf der Grundlage der Checkbox und Wenn Sie Custom Model verwenden, können Sie so etwas wie dieses

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create([Bind(Include = "InspekcijskoTijeloId,ProizvodId,DatumInspekcijskeKontrole,Rezultat,ProizvodSiguran,InspekcijskaKontrolaId")] InspekcijskaKontrola inspekcijskaKontrola) 
{ 
    if (ModelState.IsValid) 
    {   
    if(inspekcijskaKontrola.chkTest == true) 
    { 
     inspekcijskaKontrola.responseText = "product is safe"; 
    } 
    else 
    { 
     inspekcijskaKontrola.responseText = "product is not safe"; 
    } 
    } 
} 

public class inspekcijskaKontrola 
{ 
    public bool chkTest { get; set; } 
    public string responseText { get; set; } 
} 
+0

kann bitte erläutern, wo ich falsch liege? –

+0

Ich versuche das zeigt nichts Ich habe zwei Klassen eine für Server-Validierung und andere ist 'MetadataType (typeof (InspekcijskaKontrolaMeta)) öffentliche Teilklasse InspekcijskaKontrola { öffentliche String-AntwortText; } 'und ich tat das gleiche in contoller, aber nichts – Jhony2

1
internal string GetProductState(bool checkboxValue) 
{ 
    return checkboxValue ? "Your Product is safe": " Your product is not safe?"; 
} 

tun Fahren Sie mit Checkbox Wert Methode und Druckrückgabewert zum zugehörigen Feld

+0

Sollte ich diese Methode in JQuery tut mir leid, ich bin Neuling in MVC oder ich habe versucht, Element durch ID zu bekommen und seinen Wert zu bekommen? – Jhony2

+0

Und ich sollte diese Methode in Controller schreiben, sorry, ich bin total neu, werde ich trotzdem versuchen thx Mann? – Jhony2

+0

Ist es nur Front-End-Info? Brauchst du das nicht am Backend? Dann kannst du das natürlich in jQuery machen. Alles dreht sich um Arcitacture. Der Code oben ist auf C# übrigens geschrieben – Progressive

0

1) Der sauberste Weg ist eine separate, statische Erweiterungsklasse.

z.

namespace WebFrontend.Utils 
{ 
    using System; 
    using System.Linq.Expressions; 
    using System.Web.Mvc; 

    public static class WebExtensions 
    { 
     public static MvcHtmlString DisplayFor<TModel>(this HtmlHelper<TModel> html, 
      Expression<Func<TModel, bool>> expression) 
     { 
      return html.DisplayFor(expression.Compile().Invoke(html.ViewData.Model)); 
     } 
    } 
} 

2) Sie haben nun eine ascx (Web-Benutzerkontrolle) Ansicht mit folgendem Inhalt

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Boolean>" %> 
<%: Model ? "Yes" : "No" %> 

3) In der Ansicht selbst erstellen, importieren Sie diesen Namensraum.

<%@ Import Namespace="WebFrontend.Utils" %> 

4) Jetzt können Sie es Ihrer Ansicht nach wie nennen:

<%: Html.DisplayFor(m => m.BoolValue)%> 

5) ACHTUNG: Dieses ziemlich statisch ist (Ausgang ist immer gleich). Wenn Sie mehrere boolesche Werte haben, müssen Sie die Funktion erweitern, damit Sie die Parameter (2 Strings - vielleicht als benutzerdefinierte Attribute im Modell?) Hinzufügen können. Alternativ können Sie wie folgt in der Ansicht tun:

<%: Model.BoolValue ? "This product is safe." : "This product is not safe" %> 
+0

Ich werde dies auch thx viel @KampfFussel versuchen – Jhony2