C# 如何使用Asp.Net Razor在按钮单击上呈现局部视图
我不熟悉Jquery和创建局部视图。我有一个“createproject”按钮,我试图在其中创建它,这样,如果用户单击它,页面就会呈现一个局部视图,其中包含一个表单post,用户可以在其中输入数据,并可以在razor页面后面的代码中执行OnPost() 这是我的部分视图:\u CreateProject.cshtmlC# 如何使用Asp.Net Razor在按钮单击上呈现局部视图,c#,jquery,html,asp.net-core,razor,C#,Jquery,Html,Asp.net Core,Razor,我不熟悉Jquery和创建局部视图。我有一个“createproject”按钮,我试图在其中创建它,这样,如果用户单击它,页面就会呈现一个局部视图,其中包含一个表单post,用户可以在其中输入数据,并可以在razor页面后面的代码中执行OnPost() 这是我的部分视图:\u CreateProject.cshtml @page @model Visportfolio.Pages.CreatePortfolioModel @* For more information on enabli
@page
@model Visportfolio.Pages.CreatePortfolioModel
@*
For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
<form enctype="multipart/form-data" method="post" id="partial">
<label asp-for="Category">Category: </label>
<select asp-for="Category" asp-items="Model.categorylist">
<option value="">---Select Category---</option>
</select>
<label asp-for="SubCategoryId">Subcategory:</label>
<select asp-for="SubCategoryId"><option value="">---Select Subcategory---</option></select>
<div class="row">
<div class="col-md-4">
<label asp-for="ProjectName"></label>
<input asp-for="ProjectName" class="form-control" />
<span class="alert-danger" asp-validation-for="ProjectName"></span>
</div>
</div>
<div class="row">
<div class="col-md-4">
<label asp-for="ProjectDescription"></label>
<input asp-for="ProjectDescription" class="form-control" />
</div>
</div>
<div class="for-group-row">
<label asp-for="FileUpload" class="col-sm-2 col-form-label"></label>
<div class="col-md-4">
<div class="custom-file">
<input asp-for="FileUpload" class="form-control custom-file-input" />
<label class="custom-file-label">Choose File</label>
</div>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Create</button>
</div>
</div>
</form>
注意:我也尝试过:@Html.Raw(Url.Action(“OnGetPartialProject”))而不是上面load()参数中的内容
最后,这是我尝试渲染局部视图的方法
public IActionResult OnGetPartialProject()
{
return Partial("~/Pages/Portfolio/_CreateProject.cshtml");
}
我曾经尝试过使用MVC的例子,并尝试过用Razor操作它,但我不确定该修复什么。我知道Jquery没有调用应该呈现部分视图的处理程序方法,因为我在那里放置的断点从未到达。因此,我认为Jquery是不正确的,但我不确定为什么。如果在修复该问题后,我在此处创建的调用部分视图的其余语法适用于使用id=“partial”?将该部分视图加载到中的场景,请尝试以下步骤:
\u CreateProject.cshtml
共享页面移动到页面
文件夹内的共享
文件夹Pages
文件夹中有Portfolio
文件夹,其中有CreatePortfolio.cshtml
page。将jquery url修改为:
$('#call_partial').click(function () {
$('#partial').load("/Portfolio/CreatePortfolio?handler=PartialProject");
});
OnGetPartialProject
方法如下:
public IActionResult OnGetPartialProject()
{
return Partial("_CreateProject");
}
我试过了,但没用。当我点击按钮时,什么也没发生。它从来都不是handler方法,所以按钮或Jquery仍然可能有问题?我现在理解Razor的语法在这方面有点不同。我能够通过用一个塑料袋包裹按钮,使按钮到达处理程序。这会调用处理程序,但我不确定它是否会填充,因为我认为没有调用jQuery。我现在得到:ArgumentNullException:值不能为null。参数名称:viewData,因为局部视图不知道ProjectName、ProjectDescription等。是否有办法在div中显示此表单,以便用户可以输入其信息并发布?不确定当前场景,您可能会提供更多详细信息。
public IActionResult OnGetPartialProject()
{
return Partial("~/Pages/Portfolio/_CreateProject.cshtml");
}
$('#call_partial').click(function () {
$('#partial').load("/Portfolio/CreatePortfolio?handler=PartialProject");
});
public IActionResult OnGetPartialProject()
{
return Partial("_CreateProject");
}