我有一个ASP.Net Web表单,其中包含文本框字段和隐藏字段.使用客户端JavaScript动态修改隐藏字段值.发布表单,检查值并重定向到另一个页面都按预期工作.
但是,当我使用浏览器后退按钮显示上一页时,我希望看到所有表单字段仍然填充了已发布的值.
在IE和Firefox中,文本和隐藏输入字段都是这种情况.
在Chrome中,这仅适用于文本字段.隐藏字段的值丢失.
在导航浏览器历史记录时,Chrome是否真的会重新填充动态设置隐藏的表单字段值?
我已经将一个小样本放在一起以证明问题,如果需要可以提供.我想先问问题,看看这是否是众所周知的行为,我必须接受.
我有一个视图,其中包含模型中的项目列表.我需要为每一行添加一个复选框,让用户选中多个复选框,并将选择了哪一行的标识符传递给控制器.我知道如何通过动作链接传递单个值,但我不确定如何通过动作链接传递多个值或如何"收集"选择哪些行.我将在下面展示我的一些代码尝试.有人可以帮我理清为什么我无法获得传递给控制器的所有复选框的值吗?
这是我的页面
Checkbox App ID Date Name
[] 1 5/10 Bob
[] 2 5/10 Ted
[] 3 5/11 Alice
Run Code Online (Sandbox Code Playgroud)
我需要用户做的是选择第1行和第3行(例如)并将这些App ID传递给控制器.
我开始列出各种尝试,但决定只显示我当前的尝试,看看是否有人可以指出我做错了什么.我在网上和我的例子中看到的主要区别是我使用PagedList并在foreach循环中创建表的行.
当命中控制器时,参数int为空白.如何从复选框中获取值?我使用这个站点的基本思想是将所有复选框命名为相同,并通过操作链接传递ICollection:http: //haacked.com/archive/2008/10/23/model-binding-to-a-list. ASPX /
视图:
@model PagedList.IPagedList<CarmelFinancialWeb.Models.ModelMerchantSummary>
<div class="block" style="width: 100%; float: left">
<p class="block-heading">
Merchant Application Report
</p>
<div class="table-holder">
<table class="table" style="margin-bottom: 0px">
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
<input type="checkbox" name="ints" value=item.ApplicationID />
</td>
<td>
@Html.ActionLink(item.ApplicationID.ToString(), "ViewApplication", new { ID = item.ApplicationID, edit = 1 }, new AjaxOptions { HttpMethod …Run Code Online (Sandbox Code Playgroud) 我有一个与用户关联的项目列表.这是一对多的关系.我希望将整个项目列表传递到视图中,以便他们可以从尚未与之关联的项目中进行选择(并且还可以查看已经关联的项目).我想从这些创建复选框.然后我想将所选择的那些发送回控制器以进行关联.我如何传递所有这些列表,包括那些尚未关联的列表,并可靠地将它们传回以进行关联?
这是我首先尝试的,但很明显这不会起作用,因为我基于通过AllItems集合传入的项目的输入,该集合与用户本身的项目没有任何关联.
<div id="item-list">
@foreach (var item in Model.AllItems)
{
<div class="ui field">
<div class="ui toggle checkbox">
<input type="checkbox" id="item-@item.ItemID" name="Items" value="@item.Active" />
<label for="item-@item.ItemID">@item.ItemName</label>
</div>
</div>
}
</div>
Run Code Online (Sandbox Code Playgroud) 我Tuple用来传递视图内的两个模型,如下所示。
@model Tuple<AdvanceSearchModel, List<SearchUserModel>>
<form role="search" method="post" action="/Public/AdvanceSearch">
<div class="form-group">
<label>Name</label>
<input name="FullNames" type="text" class="form-control" value=""/>
</div>
<div class="form-group">
<label>Product</label>
<input name="Products" type="text" class="form-control" value="" />
</div>
<div class="form-group">
<label>Location:</label>
<input name="Location" type="text" class="form-control" value="" />
</div>
<div class="form-group">
<label>State</label>
<input name="States" type="text" class="form-control" value="" />
</div>
<div class="form-group">
<label>Country</label>
<input name="Countries" type="text" class="form-control" value=""/>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
name输入中的所有属性均为AdvanceSearchModel。asp-for当将多个模型传递到包含一个或多个表单的视图时,如何使用标记帮助器?在上述情况下提交表单后,如何保留表单的值?
根据这篇文章,我试图绑定一个非顺序项列表.
视图:
<%using (Html.BeginForm("Products", "Home", FormMethod.Post))
{ %>
<input type="hidden" name="products.Index" value="cold" />
<input type="text" name="products[cold].Name" value="Beer" />
<input type="text" name="products[cold].Price" value="7.32" />
<input type="hidden" name="products.Index" value="123" />
<input type="text" name="products[123].Name" value="Chips" />
<input type="text" name="products[123].Price" value="2.23" />
<input type="hidden" name="products.Index" value="caliente" />
<input type="text" name="products[caliente].Name" value="Salsa" />
<input type="text" name="products[caliente].Price" value="1.23" />
<input type="submit" value="Submit" />
<%} %>
Run Code Online (Sandbox Code Playgroud)
行动方式:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Products(IList<Product> products)
{
return View("Index");
}
Run Code Online (Sandbox Code Playgroud)
绑定似乎对我不起作用,参数产品总是包含null.我错过了什么吗?
任何帮助非常感谢,谢谢.
请注意,我使用的是ASP.NET MVC 1.0
我一直在这里寻找类似的问题,但仍然找不到我的问题的解决方案.
我有一个包含一些文本和表单的页面,它们共享相同的ViewModel,如下所示:
public class MyViewModel
{
public IEnumerable<WordingB> WordingBs { get; set; }
public IEnumerable<WordingC> WordingCs { get; set; }
public IEnumerable<Question> Questions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这里有关于WordingB,WordingC和Question的更多细节:
public class WordingB
{
public string EOW { get; set; }
}
public class WordingC
{
public string EOW { get; set; }
}
public class Question
{
public string QuestionText { get; set; }
public string Answer {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这是有问题的页面:
@model MyProject.ViewModels.MyViewModel
<div class="col-md-6 masonry listview-block">
@foreach (var wording …Run Code Online (Sandbox Code Playgroud) asp.net-mvc ×5
c# ×3
razor ×2
.net ×1
asp.net ×1
asp.net-core ×1
back-button ×1
checkbox ×1
forms ×1