对象不会在Url.action中保存它的状态

时间:2012-06-02 05:19:27

标签: asp.net-mvc-3 url.action

我在.NET MVC3中使用jqueyrmobile框架开发应用程序。我正在使用循环

创建ListView
<ul data-role="listview">
    @foreach (var item in Model)
    {
      <li><a href="@Url.Action("Index","Transaction",item)">
            <div style="vertical-align:text-top;padding:1px;font-size:large">  
              @Html.DisplayFor(modeItem => item.title)
              <span style="font-size:small;text-align:right">
                @Html.DisplayFor(modeItem => item.balance)
                .@Html.DisplayFor(modeItem => item.currency) 
              </span>
            </div>
          </a>
      </li>   
    }    
</ul>

这很好用,我在item Index控制器的动作中得到了对象Transaction;但是对于另一个页面的similer代码

 <ul data-role="listview">
       @foreach (var item in Model)
        {
          <li><a href="@Url.Action("optionDialog",item)" data-rel="dialog" >
          <div>@Html.DisplayFor(modeItem => item.brTitle)</div></a></li> 
        }       
    </ul>

我在item行动中获得了空optionDialog个对象。虽然它调用了Action,但该对象为null。任何人请帮助我。

2 个答案:

答案 0 :(得分:0)

问题在于你将项目错误地传递给了行动

 "@Url.Action("optionDialog",item)" <--- wrong

像这样试过

 "@Url.Action("optionDialog", new { fooParameter= item})"

答案 1 :(得分:0)

我得到的解决方案有微软的bug在更换后不能工作一段时间来调用自己的控制器动作

<li><a href="@Url.Action("optionDialog",item)" data-rel="dialog" > 

<li><a href="@Url.Action("optionDialog","ControllerName",item)" data-rel="dialog" > 

我得到了我的结果