2012-05-03 51 views
0

我想在重定向到動作時傳遞參數,然後將該參數綁定到模型。這是我到目前爲止,有誰可以告訴我如何做到這一點?重定向到動作時傳遞參數

在執行該重定向操作使用此聲明:

return RedirectToAction("TwinWithFacebook", new { id = facebookID }); 

然後我得到的是:

[HttpGet] 
    public ActionResult TwinWithFacebook(long id) 
    { 
     //use viewdata to store id here? 
     return View(); 
    } 

而且我的帖子:

[HttpPost] 
    public ActionResult TwinWithFacebook(FacebookConnectModel fbc) 
    { 
     //assign this here? 
     //fbc.facebookId = id; 
+2

您只需將值賦給您的模型,然後將其賦予您的視圖。 – Styxxy

+0

是的,我從Facebook獲得ID,然後傳遞給用戶可以輸入他們詳細信息的視圖 – user517406

+0

那麼問題是什麼?你有你的模型中的信息...清楚你想要什麼。 – Styxxy

回答

1

你必須給模型到您的視圖只分配,這樣

public ActionResult TwinWithFacebook(long id) 
{ 
    FacebookConnectModel fbc = new FacebookConnectModel(id); 
    return View(fbc); 
} 

然後在您的視圖中可以使用HTML幫助把這樣的形式參數id:

@model FacebookConnectModel 
@Html.BeginForm() 
{ 
    @Html.TextBoxFor(x => x.Name) 
    @Html.HiddenFor(x => x.Id) 
    <input type"submit" /> 
} 

然後當您點擊提交按鈕時,您發佈了該模型,並且正確且完全填充的模型將作爲參數傳遞

+0

你的方法是獲得或後? – user517406

+0

出於某種原因,它不會拿起id,所以我必須通過此代碼獲取id FacebookConnectModel fbc = new FacebookConnectModel(Convert.ToInt64(Url.RequestContext.RouteData.Values [「id」])); – user517406

+0

當id用作路由參數時,會發生這種情況,並且模型參數也會發生(只是名稱相同,'id'),那麼它有時會發生與設置了錯誤變量的名稱約定,您可以通過使用facebookId或其他像那樣 – Sloth

0
return RedirectToAction("TwinWithFacebook", new FacebookConnectModel(...){ or here ...}); 
0

當你做GET,你想用它來查找一個對象編號,對嗎?

public ActionResult TwinWithFacebook(long id) 
{ 
    // Basically, use the id to retrieve the object here 
    FacebookConnectModel fbc = new FacebookConnectModel(id); 

    // then pass the object to the view. Again, I'm assuming this view is based 
    // on a FacebookConnectModel since that is the object you are using in the POST 
    return View(fbc); 
} 
+0

不,我不想查找帶有id的對象,我想使用id以及其他細節用戶可以在我重定向到的頁面上輸入。 – user517406