Ihnen fehlen einige Klammern um Ihren Bedingungsausdruck.
Versuchen Sie stattdessen:
string text = "<option value=\"" + cuID.Value + "\">" + cuName + " (" + (cuEmpID == "" ? "-" : cuEmpID) + ")" + "</option>";
htmlResp.Append(text);
Was warum die fehlenden Klammern, dass ... Das ist eine interessante Frage zu geschehen verursacht!
es zu beantworten, lassen Sie mich den ursprünglichen Code ein wenig vereinfachen:
string text = ">>>" + cuEmpID == "" ? "-" : cuEmpID + "<<<"; // Gives "ZXCV<<<"
Was passiert ist, dass der bedingte Ausdruck ">>>" + cuEmpID == ""
als Bedingung verwendet. Das ist nicht gleich "", also wird die rechte Seite des Bedingungsausdrucks verwendet, nämlich der cuEmpID + "<<<"
Teil, der die Ausgabe angibt, die wir sehen.
Sie sollten wirklich den Ausdruck vereinfachen, zum Beispiel:
string normalisedEmpID = cuEmpID == "" ? "-" : cuEmpID;
string text = string.Format
(
"<option value=\"{0}\">{1} ({2})</option>",
cuID.Value,
cuName,
normalisedEmpID
);
Können Sie ein Beispiel für die erwartete HTML und tatsächliche HTML geben Sie daraus? –
Es ist auch nicht das Nullable-Element. –
@TomRiley Ich erwarte '' aber es gibt mir 'ZXCV)' statt – ocean4dream