簡體   English   中英

在剃刀應用中將參數從模型傳遞到控制器

[英]Passing parameters from model to controller in razor application

我在asp.net mvc4應用程序中遇到問題:

我將兩個整數作為參數傳遞給動作:

<a>@Html.ActionLink(s, "Gerer_Sequence", "Travail", new { seq = Model[k][i].Id_séquence , affa = aff.Id_affaire } )</a>

動作是:

public ActionResult Gerer_Sequence(int seq,  int affa)
{
    Session["affaire"] = affa;
    Session["sequence"] = seq;
    return RedirectToAction("Index", "Calendar");
}

問題是參數為null但是在模型中其值為31

那是什么問題呢? 如何修改我的代碼以修復錯誤?

嘗試這個。

   <td>
                        @Html.ActionLink("EditUser", "Index", new { Id = m.ID,Name = m.Name })
                    </td>


  public ActionResult Index(string Id, string Name)
        {
            var model = new RegisterModel();
            int _ID = 0;
            int.TryParse(Id, out _ID);
            if (_ID > 0)
            {
                RegisterModel register = GetRegisterUserById(_ID);
                model.ID = _ID;
                model.Name = register.Name;
                model.Address = register.Address;
                model.PhoneNo = register.PhoneNo;

            }
            return View(model);
        }

您只需要更改以下內容:

new { seq = Model[k][i].Id_séquence , affa = aff.Id_affaire }

對此:

new RouteValueDictionary { { "seq", Model[k][i].Id_séquence }, { "affa", aff.Id_affaire } }

因為您使用的第四個參數是路由值。

嘗試這個:

@Html.ActionLink(s, "Gerer_Sequence", "Travail", new { seq = Model[k][i].Id_séquence , affa = aff.Id_affaire }, null )
  • 移除標簽
  • 確保您提供的參數是int值。
  • 之后,運行您的應用程序並檢查生成的鏈接,如果值確定,則應該確定。

我將動作放在同一控制器中:

@Html.ActionLink("Gerer Sequence", "Gerer_Sequence", new { seq = Model[k][i].Id_séquence , affa = aff.Id_affaire } )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM