控制器操作可以用於常規的Web請求和ajax調用嗎?控制器操作可以用於常規的web請求和ajax調用嗎?
對於常規的Web請求,該操作將採用表單集合,將類別與文章關聯,然後重定向到另一個頁面。
對於ajax請求,它會將該類別關聯到文章,但不是重定向它會發送某種響應消息。
這是一個很好的做法,還是應該創建2個動作?
控制器操作可以用於常規的Web請求和ajax調用嗎?控制器操作可以用於常規的web請求和ajax調用嗎?
對於常規的Web請求,該操作將採用表單集合,將類別與文章關聯,然後重定向到另一個頁面。
對於ajax請求,它會將該類別關聯到文章,但不是重定向它會發送某種響應消息。
這是一個很好的做法,還是應該創建2個動作?
創建兩個操作,這兩個操作對業務邏輯都使用相同的方法。無論誰維護,都會感謝你。
我認爲最好是將操作分開,並儘可能多地使用控制器中私有方法的代碼。
我敢肯定有可能檢測到ajax調用,但它有點傷害了單一責任原則。
它是一個很好的做法,每當爲ajax寫入動作時,都無法啓用JS用戶,所以每個ajax動作都應控制該請求是來自ajax還是可以處理兩者的普通請求。
我給這家首選方法是
public ActionResult UpdateJS(int id)
{
var retVal = Update(id);
return View("UpdateJS", retVal);
}
public ActionResult UpdateReg(int id)
{
var retVal = Update(id);
return View("UpdateReg", retVal);
}
public object Update(int id)
{
//Do something here
return id;
}