Ich möchte, dass die Steuerung akzeptiert/Details/1 und/User/xxx aber nicht/User/.net MVC Aktion mit Optionale Parameter
und ich versuche, es unten wie =>
public ActionResult Details(Nullable<int> id, Nullable<string> name)
{
if (((id ?? 0) == 0) && name == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Instructor instructor = db.Instructors.Where(x => x.InstructorId == id || x.faculty_name.Equals(name)).SingleOrDefault();
if (instructor == null)
{
return HttpNotFound();
}
ViewBag.faculty_active = MyCustomFunctions.UserActivity();
return View(instructor);
}
i wollen, dass (Villa oben) Benutzer passieren kann/Details/1 oder/Details/xxx aber nicht/Details/thats, warum ich hinzufügen Bedingung check =>
if (((id ?? 0) == 0) && name == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
, aber ich will den Code der Compiler gibt mir Fehler laufen etwas wie => i das war dachte perfekt, aber ich weiß nicht, warum ein falsch gemacht haben = Ich habe versucht =>
public ActionResult Details(int? id, string? name)
{
}
, die die gleiche error.i gibt mir auch über dieses Problem gesucht war und ich fand => ASP.NET MVC Overriding Index action with optional parameter
Ich verstehe nichts. Deshalb habe ich diese Art von Problemen gestellt. das wird toll voll wenn mir jemand helfen kann?
zu analysieren "string" ist bereits Nullable. Aber du kannst nicht 2 Nullable-Werte als Parameter haben und Routen verwenden (du wirst nur '/ Details? Name = xxx' erzeugen können - wenn du'/Details/xxx' verwenden würdest, sind beide Parameter 'null' und dein Code wird immer 'BadRequest' zurückgeben –
@StephenMuecke public ActionResult Details (int id = 0, string name = null) gibt mir eine schlechte request .... gibt es eine möglichkeit, dieses problem zu lösen oder ich muss anderen struktur –
folgen Habe einfach einen Parameter ('string') und überprüfe, ob es zu' int' geparst werden kann. –