我在下面对这个问题进行了修改,这仍然是相同的,但希望通过模型以及我想要实现的目标以及我遇到问题的地方更加清晰.
下面显示了两个类,Company和Employee,Company有一个Employees列表.
这将是一个输入表单,因此开始时将没有数据.
最终,我希望用户能够根据需要向Company对象模型添加尽可能多的Employee对象,并更新Employee对象
我使用BeginCollectionItem在正确的轨道上,所以我可以添加/删除任意数量的Employee对象吗?当我单击Add按钮时,它会将其带到另一个页面上的部分视图(使用AjaxActionLink),但不能使用JavaScript.
更新 删除了AjaxActionLink并改为使用JavaScript.
指数
@model MvcTest.Models.Company
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Company</h2>
<div>
@Html.LabelFor(m => m.Name)
@Html.EditorFor(m => m.Name)
</div>
<fieldset>
<legend>Employees</legend>
<div id="new-Employee">
@foreach (var Employee in Model.Employees)
{
Html.RenderPartial("_Employee", Employee);
}
</div>
<div>
<input type="button" id="addemployee" name="addemployee" value="Add Employee"/>
<br/>
</div>
<br/>
@section Scripts
{
<script type="text/javascript">
$('#addemployee').on('click', function () {
$.ajax({
async: false,
url: '/Company/AddNewEmployee'
}).success(function (partialView) {
$('#new-Employee').append(partialView);
});
});
</script>
}
</fieldset>
<div>
<input type="submit" value="Submit" />
</div> …Run Code Online (Sandbox Code Playgroud) 我以前通过输入单选按钮的id和名称在Web窗体开发中使用它,但似乎无法在MVC5中获取它,有人可以指出我做错了吗?
在单选按钮(模型的一部分)选择,根据哪个按钮,我想要出现另一个文本框(在div内).
视图:
<div class="ui-grid-solo">
<div class="ui-grid-solo">
<div class="ui-block-a">
<p>AS Number Type</p>
<span>
@Html.RadioButtonFor(model => model.NumberType, "Odd", true)Odd
@Html.RadioButtonFor(model => model.NumberType, "Even", false)Even
</span>
</div>
</div>
@if (Model.NumberType == true)
{
<div id="OddOrEven">
<div class="ui-grid-solo">
<div class="ui-block-a">
<span>
@Html.EditorFor(m => m.Reason)
</span>
</div>
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
@section Scripts
{
<script type="text/javascript" src="~/Scripts/maintainscroll.jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("input[Value='Odd']").click(function () {
var test = $(this).val();
$("#OddOrEven").show();
});
});
</script>
}
Run Code Online (Sandbox Code Playgroud)