Forms 如何在一个页面中循环使用多个表单,并在.NET核心mvc中保留相同的提交按钮?
我正在构建一个asp.net mvc web应用程序,使用razor页面使事情变得更简单,但由于我的UI设计,我遇到了一些障碍 我需要有多个表单,用户可以在引导导航元素中循环浏览。这些表单都是唯一的,但它们都有一个“comments”元素(textbox和button),位于单独的元素右侧,用作表单的提交按钮 现在,我有两个“卡片”,rfi和knowledgebase,在一个表单中有comments元素。当用户单击comments元素上的submit时,is将同时提交卡片、rfi和知识库。我需要在用户单击提交表单时提交用户正在查看的当前表单。有没有办法做到这一点?我应该使用局部视图吗Forms 如何在一个页面中循环使用多个表单,并在.NET核心mvc中保留相同的提交按钮?,forms,twitter-bootstrap,asp.net-core,model-view-controller,razor,Forms,Twitter Bootstrap,Asp.net Core,Model View Controller,Razor,我正在构建一个asp.net mvc web应用程序,使用razor页面使事情变得更简单,但由于我的UI设计,我遇到了一些障碍 我需要有多个表单,用户可以在引导导航元素中循环浏览。这些表单都是唯一的,但它们都有一个“comments”元素(textbox和button),位于单独的元素右侧,用作表单的提交按钮 现在,我有两个“卡片”,rfi和knowledgebase,在一个表单中有comments元素。当用户单击comments元素上的submit时,is将同时提交卡片、rfi和知识库。我需
@using (Html.BeginForm())
{
<!--<div asp-validation-summary="All"></div>-->
<div class="row">
<div class="container col-sm-8">
<div class="card form-nav-bar">
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" data-toggle="pill" href="#rfi">RFI</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="pill" href="#kBase">Knowledge Base</a>
</li>
</ul>
</div>
<div class="tab-content">
<!--RFI card-->
<div id="rfi" class="card container box-shadow tab-pane active">
<div class="card-body">
<div class="row">
<div class="col-sm-12">
<h4>
Consumer Information:
</h4>
</div>
<div class="field col-sm-4">
@Html.EditorFor(x => x.RFIModel.FirstName, new { htmlAttributes = new { placeholder = " " } })
@Html.LabelFor(x => x.RFIModel.FirstName)
@Html.ValidationMessageFor(x => x.RFIModel.FirstName, "", new { @class = "text-danger" })
. . .
</div>
</div>
</div>
</div>
<!--Knowledge Base card-->
<div id="kBase" class="card container tab-pane">
<div class="card-body">
. . .
</div>
</div>
</div>
</div>
<!--Summary Modal-->
<div class="container col-sm-4" role="dialog" id="Comments-Modal">
<div class="modal-content box-shadow">
<div class="modal-header">
<h5 class="modal-title">Summary</h5>
</div>
<div class="modal-body">
<div class="md-form">
<!--<label for="Comments"> </label>
<textarea type="text" id="Comments" class="md-textarea form-control" mdbInput></textarea>-->
@Html.LabelFor(x => x.RFIModel.Comments)
@Html.TextAreaFor(x => x.RFIModel.Comments, new { htmlAttributes = new { placeholder = " ", type = "text" }, @class = "md-textarea form-control" })
@Html.ValidationMessageFor(x => x.RFIModel.Comments, "", new { @class = "text-danger" })
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
</div>
}
@使用(Html.BeginForm())
{
-
-
消费者信息:
@EditorFor(x=>x.RFIModel.FirstName,new{htmlAttributes=new{placeholder=”“})
@LabelFor(x=>x.RFIModel.FirstName)
@Html.ValidationMessageFor(x=>x.RFIModel.FirstName,“,新的{@class=“text danger”})
. . .
. . .
总结
@LabelFor(x=>x.RFIModel.Comments)
@Html.TextAreaFor(x=>x.RFIModel.Comments,new{htmlAttributes=new{placeholder=”“,type=“text”},@class=“md textarea form control”})
@Html.ValidationMessageFor(x=>x.RFIModel.Comments,“,new{@class=“text danger”})
提交
}
是的,我认为您可以使用js和ajax动态引用局部视图:
@using (Html.BeginForm())
{
<!--<div asp-validation-summary="All"></div>-->
<div class="row">
<div class="container col-sm-8">
<div class="card form-nav-bar">
<ul class="nav nav-pills">
<li class="nav-item">
<a id="rfiLink" class="nav-link active" data-toggle="pill" href="#rfi">RFI</a>
</li>
<li class="nav-item">
<a id="kBaseLink" class="nav-link" data-toggle="pill" href="#kBase">Knowledge Base</a>
</li>
</ul>
</div>
<div class="tab-content">
<div id="rfi" class="card container box-shadow tab-pane active">
<div class="card-body">
<div class="row">
<div class="col-sm-12">
<h4>
Consumer Information:
</h4>
</div>
<div class="field col-sm-4">
@Html.EditorFor(x => x.RFIModel.FirstName, new { htmlAttributes = new { placeholder = " " } })
@Html.LabelFor(x => x.RFIModel.FirstName)
@Html.ValidationMessageFor(x => x.RFIModel.FirstName, "", new { @class = "text-danger" })
. . .
</div>
</div>
</div>
</div>
</div>
</div>
<!--Summary Modal-->
<div class="container col-sm-4" role="dialog" id="Comments-Modal">
<div class="modal-content box-shadow">
<div class="modal-header">
<h5 class="modal-title">Summary</h5>
</div>
<div class="modal-body">
<div class="md-form">
<!--<label for="Comments"> </label>
<textarea type="text" id="Comments" class="md-textarea form-control" mdbInput></textarea>-->
@Html.LabelFor(x => x.RFIModel.Comments)
@Html.TextAreaFor(x => x.RFIModel.Comments, new { htmlAttributes = new { placeholder = " ", type = "text" }, @class = "md-textarea form-control" })
@Html.ValidationMessageFor(x => x.RFIModel.Comments, "", new { @class = "text-danger" })
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
</div>
}
@section scripts{
<script>
$("#rfiLink").click(function () {
$.ajax({
type: "get",
url: "Home/GetRFI",
success: function (data) {
$(".tab-content").empty();
$(".tab-content").html(data);
}
})
})
$("#kBaseLink").click(function () {
$.ajax({
type: "get",
url: "Home/GetkBase",
success: function (data) {
$(".tab-content").empty();
$(".tab-content").html(data);
}
})
})
</script>
}
非常感谢你!我会这样做,但是有可能避免ajax和jquery吗?我可以对事件侦听器和查询选择器执行相同的操作吗?
public IActionResult GetRFI()
{
return PartialView();
}
public IActionResult GetkBase()
{
return PartialView();
}