我想將我的控制器中的方法的變量傳遞給模型中的方法。由於模型中的方法需要一個參數(之前已經設計過),所以我無法將我的變量作爲參數傳遞給模型中的方法。而且,這個模型中的方法也被其他控制器調用,所以如果我改變參數,我也必須改變所有的控制器,這將是一個乏味的任務。 我一直在嘗試的是 - 我創建了一個MyVariableClass並聲明瞭一個屬性。然後我實例化該類並將屬性字符串設置爲我想要傳遞的變量。現在,在我的Model的方法中,我再次實例化了相同的MyVariableClass,但是當我這樣做時,變量的值被設置爲null。我現在所擁有的代碼是 -將屬性從控制器傳遞到模型
public ActionResult ItemInformation(string id)
{
//Pass a string to MyVariable
MyVariableVClass params = new MyVariableClass();
params.myVariable = "abc";
//This is what My Model is taking as an argument(id), and I don't want to
//pass mYvariable along with that argument because it will break other controllers
// too which calls this method
var itemInformation = _repository.GetItemInformation(id);
return View(itemInformation);
}
和MyVariableClass
public class MyVariableClass
{
public string myVariable { get; set; }
}
,並在我的模型方法
public IList<Items> GetItemInformation(string itemId)
{
MyVariableClass webType = new MyVariableClass();
var _params = webType.myVariable;
//Check this variable and perform database query
if (_params =="this")
{
var query = myFirstQuery;
}
else
{
var query = mySecondQuery;
}
//return ....
}
任何人有解決這個?提前致謝!
您似乎沒有將'MyVariableClass'實例(即'params')傳遞給任何東西。相反,你創建兩次,一次在你的控制器中,一次在你的模型中。那該如何完成任何事情? (另外,你的模型實際上不應該有行爲 - 方法 - 它們是爲了保存數據,而不是用於隨機位代碼的存儲庫,把GetItemInformation行爲放在其他地方,它沒有業務存在於模型中。 ) – 2011-06-06 19:41:45
是啊!其實我的問題是我如何將MyVariableClass的實例傳遞給getItemInformation而不更改GetItemInformation的當前結果? – ACS 2011-06-06 20:26:17