![](/img/trans.png)
[英]I have a list of viewmodel in another viewmodel. How can I pass parameter from action to controller?
[英]How can I pass a parameter in Action?
private void Include(IList<string> includes, Action action)
{
if (includes != null)
{
foreach (var include in includes)
action(<add include here>);
}
}
我想這樣稱呼它
this.Include(includes, _context.Cars.Include(<NEED TO PASS each include to here>));
這個想法是將每個包含傳遞給方法。
如果您知道要傳遞的參數,請為該類型執行Action<T>
。 例:
void LoopMethod (Action<int> code, int count) {
for (int i = 0; i < count; i++) {
code(i);
}
}
如果要將參數傳遞給方法,請使方法通用:
void LoopMethod<T> (Action<T> code, int count, T paramater) {
for (int i = 0; i < count; i++) {
code(paramater);
}
}
和來電者代碼:
Action<string> s = Console.WriteLine;
LoopMethod(s, 10, "Hello World");
更新。 您的代碼應如下所示:
private void Include(IList<string> includes, Action<string> action)
{
if (includes != null)
{
foreach (var include in includes)
action(include);
}
}
public void test()
{
Action<string> dg = (s) => {
_context.Cars.Include(s);
};
this.Include(includes, dg);
}
你正在尋找Action<T>
,它接受一個參數。
臟技巧:您也可以使用lambda表達式傳遞您想要的任何代碼,包括帶參數的調用。
this.Include(includes, () =>
{
_context.Cars.Include(<parameters>);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.