小编Yus*_*zun的帖子

如何使用不同的名称绑定视图模型属性

有没有办法将视图模型属性作为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

16
推荐指数
2
解决办法
1万
查看次数

强类型Linq过滤方法

我有点厌倦了编写这样的服务层代码:

下面的代码只是读者的一个例子.所以他们可能有错误或错别字,抱歉:)

//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)

c# linq strong-typing service-layer

6
推荐指数
1
解决办法
1289
查看次数

jquery在选择器中查找逻辑运算符

如何在不使用逗号分隔符的情况下搜索(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)

原因:只是好奇并认为可能存在性能差异(第二是更快).

javascript jquery

1
推荐指数
1
解决办法
1957
查看次数