有没有办法将视图模型属性作为html端具有不同名称和id值的元素进行反射.
这是我想要实现的主要问题.所以问题的基本介绍如下:
1-我有一个视图模型(作为示例),它为视图侧的过滤操作创建.
public class FilterViewModel
{
public string FilterParameter { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
2-我有一个控制器动作,它是为GETting表格值创建的(这里是过滤器)
public ActionResult Index(FilterViewModel filter)
{
return View();
}
Run Code Online (Sandbox Code Playgroud)
3-我认为用户可以过滤某些数据,并通过表单提交通过查询字符串发送参数.
@using (Html.BeginForm("Index", "Demo", FormMethod.Get))
{
@Html.LabelFor(model => model.FilterParameter)
@Html.EditorFor(model => model.FilterParameter)
<input type="submit" value="Do Filter" />
}
Run Code Online (Sandbox Code Playgroud)
4-我想在渲染视图输出中看到的是
<form action="/Demo" method="get">
<label for="fp">FilterParameter</label>
<input id="fp" name="fp" type="text" />
<input type="submit" value="Do Filter" />
</form>
Run Code Online (Sandbox Code Playgroud)
5-作为解决方案,我想修改我的视图模型,如下所示:
public class FilterViewModel
{
[BindParameter("fp")]
[BindParameter("filter")] // this one extra alias
[BindParameter("param")] //this one extra alias
public string FilterParameter { …Run Code Online (Sandbox Code Playgroud) asp.net-mvc model-binding data-annotations razor asp.net-mvc-5
我有点厌倦了编写这样的服务层代码:
下面的代码只是读者的一个例子.所以他们可能有错误或错别字,抱歉:)
//ViewModel
public class EntityIndexFilterPartial
{
public int? Id { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public IEnumerable<SelectListItem> StatusList { get; set; }
public int? StatusID { get; set; }
}
//Service Layer method
//Method parameters are reperesents view model properties
public IQueryable<Entity> FilterBy(int? id, DateTime? startDate, DateTime? endDate, int? statusId)
{
var filter = _db.Entities.AsQueryable();
if (id.HasValue)
filter = filter.Where(x => x.Id == id.Value);
if (startDate.HasValue)
filter …Run Code Online (Sandbox Code Playgroud) 如何在不使用逗号分隔符的情况下搜索(jquery find)元素.JSFiddle在这里.
例:
<div id="inputs">
<input name="n1" value="v1" type="text" />
<input name="n2" value="v2" type="checkbox" />
<input name="n3" value="v3" type="button" />
<input name="n4" value="v4" type="hidden" />
<input name="n5" value="v5" type="text" />
<input name="n6" value="v6" type="text" />
<input name="n7" value="v7" type="text" />
<input name="n8" value="v8" type="text" />
<input name="n9" value="v9" type="text" />
<input name="n10" value="v10" type="text" />
</div>
Run Code Online (Sandbox Code Playgroud)
1-我可以使用以下代码执行此操作:
$('#inputs')
.find('input[type="text"][name="n7"], input[type="text"][name="n8"]')
.val("found");
Run Code Online (Sandbox Code Playgroud)
2-但我想如何使用它就像:
$('#inputs')
.find('input[type="text"][name="n7" || "n8"])
.val("found");
Run Code Online (Sandbox Code Playgroud)
原因:只是好奇并认为可能存在性能差异(第二是更快).