我想該控制器將接受/詳細信息/ 1 /用戶/ XXX而不/用戶/.NET MVC行動與可選參數
和我嘗試它像下面=>
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);
}
我希望這(上述豪宅),用戶可以通過/詳細信息/ 1 /詳細信息/ XXX而不/詳細信息/這就是爲什麼我添加條件檢查=>
if (((id ?? 0) == 0) && name == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
,但我想運行的代碼編譯器給我的錯誤像=> 我在想,是完美的,但我不知道爲什麼做錯了=我試過=>
public ActionResult Details(int? id, string? name)
{
}
這也使我有同樣error.i搜索關於這個問題,我發現=> ASP.NET MVC Overriding Index action with optional parameter
我不理解任何東西。這就是爲什麼我擺出這樣的問題。 如果有人能幫助我,這將會很棒嗎?
'string'已經可以爲空。但是你不能有2個可爲空的值作爲參數和使用路由(你只能生成'/ Details?name = xxx' - 如果你使用'/ Details/xxx',那麼這兩個參數都是'null',你的代碼將始終返回'BadRequest') –
@StephenMuecke public ActionResult Details(int id = 0,string name = null)會返回一個錯誤的請求....是否有任何方法可以解決此問題,或者我需要遵循其他結構 –
只需要一個參數('string'),然後檢查它是否可以被解析爲'int' –