私は単純なモデルを持っています。
class MyModel
{
public int id{get;set;}
public IEnumerable<int> params{get;set;}
}
私のアクションメソッドは次のように宣言されています:
public ViewResult Index(int id, IEnumerable<long> params)
かみそりエンジンを使用してテンプレートに簡単なコードを用意します。
@Html.BuildUrlFromExpression((ShareController c) => c.Index(Model.id, Model.params));
事RouteCollection.GetVirtualPath
-このメソッドは、結果として間違ったURLを返し@Url.Action("Index","Default",new {id=1, params = new long[]{11,33}});
ます
/Default/Index/49?params=System.Int64%5B%5D;
アドレスの構造が、渡された型を正しく理解する必要があることは、かなり明白な事実のようです。BuildUrlFromExpression
が正しい値を与えることを望みます。
/Default/Index/49?params=23¶ms=45
私はいくつかの仕事の解決策を持っています:
var rv = new RouteValueDictionary();
rv.Add("param[0]", 11);
rv.Add("param[1]", 33);
rv.Add("id", Model.CurrInFolderNum);
Url.Action("Index","default",rv)
しかし、いくつかのパラメータを送信することで機能します! それがアレイに転送されていればよかったのに。表面のどこかに答えがあると思います。