2013-11-22 88 views
1

我試圖將參數傳遞給局部視圖。該視圖將創建一個新的post對象,id像傳遞一個參數來使用。這可能嗎?我已經看到視圖數據字典傳遞周圍的時候想出來買我不知道如何使用它。將值傳遞給局部視圖

部分查看呼叫

@Html.Partial("_AddPost", new S.Models.Post()) 

_addpost

@model S.Models.Post 

<h2>Create</h2> 

    ` 
@using (Ajax.BeginForm("CreatePost", "Wall", new AjaxOptions 
{ 
    HttpMethod = "post", 
    InsertionMode = System.Web.Mvc.Ajax.InsertionMode.InsertAfter, 
    UpdateTargetId = "newStatus"})) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>Post</legend> 

     <div class="editor-label"> 

     </div> 
     <div class="editor-field"> 

@Html.HiddenFor(model => model.wallName, new { Value = //data i want passed from main view }) 
@Html.HiddenFor(model => model.Username, new { Value = User.Identity.Name }) 

     </div> 


     <div class="editor-label"> 
      @Html.LabelFor(model => model.PostContent) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.PostContent) 
      @Html.ValidationMessageFor(model => model.PostContent) 
     </div> 

     @{ 
    TempData["returnURL"] = Request.Url.AbsoluteUri; 
     } 
     <p> 
      <input type="submit" id="postStatus" value="Create" /> 
     </p> 
    </fieldset> 
} 
+0

你可以做,通過添加它來可視數據和在調用局部視圖時傳遞參數,可以添加部分類名'Post'添加想要傳遞的變量,然後在調用局部視圖時設置其數據'new S.Models.Post(){set properties}' –

回答

2

因爲該值是從你的主視圖模型,你是從主力呼喚你的部分,只需設置你的模型對象的值在你的構造函數中調用新的S.Models.Post。

@Html.Partial("_AddPost", new S.Models.Post({wallPost = model.Value})) 

如果你在你的ViewData或ViewBag從主視圖中的項目,你也可以通過添加第三個參數傳遞那些進入部分

@Html.Partial("_AddPost", new S.Models.Post(), ViewData)