0

私は単純なモデルを持っています。

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&params=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)

しかし、いくつかのパラメータを送信することで機能します! それがアレイに転送されていればよかったのに。表面のどこかに答えがあると思います。

4

0 に答える 0