2017-09-05 30 views
0

我的观点:如何从我的控制器返回部分视图以显示在我的主视图上?

<div> 
    <form method="post"action='@Url.Action("ImportProviders")'> 
     @(Html.Kendo().Upload() 
      .Name("files") 
      .HtmlAttributes(new { aria_label = "files" }) 
      .Validation(validation => validation.AllowedExtensions(new string[] { ".csv" })) 
     ) 
     <p class ="text"> This File Browser only Accepts .CSV File.</p> 
     <input type="hidden" id="clientNumber" name="Clientid" value="" /> 
     <p class="submit-btn"> 
      <input type="submit" value="Upload Providers" onclick="submit" id="UploadClick" class="k-button k-primary" /> 
      <i class="fa fa-spinner fa-pulse fa-3x fa-fw" id="makeMeDisappear"></i> 
      <span class="sr-only">Loading...</span> 
     </p> 
    </form> 
</div> 
<br /> 

<div> 
    @Html.Partial("ImportedProviderView"); 
</div> 

我有C#控制器:

public PartialViewResult ImportProviders(String ClientId, IEnumerable<HttpPostedFileBase> files) { 
    ... 
    ImportProvidersView(result,FaultyRowsTable,"FAULTY ROW"); 
    ImportProvidersView(result, InsertedRows, "INSERTED ROW"); 
    ImportProvidersView(result, UpdatedRowsTable, "UPDATED ROW"); 

    return PartialView("ImportedProviderView", result.OrderByDescending(x=>x.Createdon)); 
} 

但每次我运行这个页面需要我的部分观点而已,它并没有将其注入以上主视图。

主要问题 如何在上面的主视图中显示?

+0

你需要为此使用ajax。 – ADyson

回答

0

@Html.Partial方法只会渲染局部视图。如果您需要执行返回,您将需要使用@Html.Action方法

<div> 
    @Html.Action("ImportProviders", "ControllerName", new { ClientId = <>, files = <> }) 
</div> 
0

@Html.Partial呈现在服务器上作为主视图,其返回到浏览器的一部分的局部视图的视图控制器动作。如果用户在浏览器中执行某些操作时需要动态内容,那么您可能需要GET/POST到控制器操作来渲染新视图 - 或者您需要调用控制器操作,使用ajax渲染局部视图。

相关问题