zoa*_*oaz 16 asp.net-core-mvc asp.net-core
我正在使用ASP.NET 5 RC1
_MyPartial
@model MyViewModel
<div class="panel panel-primary">
<div class="panel-body">
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true)
@Html.MyHtmlHelperRow(model => model.ShortDistrictName)
@Html.MyHtmlHelperRowSaveButton(model => model.Id)
</div>
}
</div>
</div>
<div>
@Html.ActionLink("Back to List", "Index")
</div>
Run Code Online (Sandbox Code Playgroud)
cshtml 视图
@model MyViewModel
@{
ViewBag.Title = "Edit";
}
<h2>@ViewBag.Title</h2>
@Html.RenderPartialAsync("_MyPartial", Model)
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
Run Code Online (Sandbox Code Playgroud)
这条线
@Html.RenderPartialAsync("_MyPartial", Model)
Run Code Online (Sandbox Code Playgroud)
除了渲染html,呈现
System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]
Run Code Online (Sandbox Code Playgroud)
html中的文本直接位于部分页面呈现的最后一个内容的下方.
如果我将部分行引用更改为非异步
@Html.Partial("_MyPartial", Model)
Run Code Online (Sandbox Code Playgroud)
然后我没有得到这个文本行.
问题:
为什么我在html中获得文本行
我如何摆脱它仍然能够使用RenderPartialAsync?
Ste*_*ary 27
您需要使用await来调用异步方法.ASP.NET 5增加了await在Razor中使用的功能:
@{await Html.RenderPartialAsync("_MyPartial", Model);}
Run Code Online (Sandbox Code Playgroud)
使用接受的答案中的语法给了我这个错误:
参数1:无法从'void'转换为'object'
@await Html.RenderPartialAsync("_ ProductList",Model)
在RC1我不得不使用花括号和分号:
@{await Html.RenderPartialAsync("_ProductList", Model);}
Run Code Online (Sandbox Code Playgroud)
RenderPartialAsync 直接写入响应并返回void(技术上为Task),视图编译器无法将其作为字符串打印.
| 归档时间: |
|
| 查看次数: |
7465 次 |
| 最近记录: |