2015-04-12 4 views
1

У меня есть представление, отображающее активы для учетной записи.returnUrl in Partial Views

@{ 
    string returnUrl = returnUrl = Url.Action("Details", "AccountEntries", new { page = Model.Pages.Page }, null); 
} 

... 

@foreach (ViewDetails.ViewAsset item in Model.ViewAssets) 
{ 
    <tr> 
     <td> 
      @item.Asset.Description 
     </td> 
     <td> 
      @item.Asset.Amount.ToGBString() 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", "Assets", new { id = item.Asset.Id, returnUrl = returnUrl }, null) 
     </td> 
    </tr> 
} 

Я хочу, чтобы динамически вставить (создать) строки, используя частичный вид и Аякса.

@{ 
    string returnUrl = returnUrl = Url.Action("Details", "AccountEntries", new { page = Model.Pages.Page }, null); 
} 

... 

@foreach (ViewDetails.ViewAsset item in Model.ViewAssets) 
{ 
    @Html.Partial("_Asset", item) 
} 

с частичным видом:

@model ViewDetails.ViewAsset 

<tr> 
    <td> 
     @Model.Asset.Description 
    </td> 
    <td> 
     @Model.Asset.Amount.ToGBString() 
    </td> 
    <td> 
     @Html.ActionLink("Edit", "Edit", "Assets", new { id = Model.Asset.Id, returnUrl = returnUrl }, null) 
    </td> 
</tr> 

и AJAX:

public ActionResult MyAjaxAction(MyViewModel model) 
{ 

    return PartialView("_Asset", model); 
} 

ПРОБЛЕМА: Мой returnUrl генерируется в главном окне, и я не знаю, как использовать его в частичном представлении как для представления, так и для вызова ajax.

Для просмотра, я мог бы передать его с помощью ViewDataDictionary, но тогда как мне сделать то же самое с звонком Ajax? Я посылаю Url в сообщении Ajax или есть лучший способ сделать это?

+0

Разве вы не хотите использовать ViewModel для этого случая? –

+0

Вы говорите, что я должен сохранить returnUrl в модели представления? – CapIsland

+1

Yeap, почему бы и нет? если вы передадите int в ваш partialView. –

ответ

0

Вы можете поместить returnUrl в ViewBag и получить доступ к нему в своих частичных представлениях.