Javascript 在视图中使用C#MVC多个动态模型
我有一个带有多种表单的视图,用于搜索和显示结果,如SearchByNumber、SearchByVehicle等中的部分视图 我正试图加载视图,并通过从不同的视图发布类似www.example.com/search?number=101010的querystring链接来执行对不同表单的搜索 对于第一个表单,SearchByNumber我只有一个参数,stringnumber,我返回的是带有动态模型的视图,它的工作方式应该是这样的,但是我只设法搜索这个表单 这是我的控制器:Javascript 在视图中使用C#MVC多个动态模型,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,我有一个带有多种表单的视图,用于搜索和显示结果,如SearchByNumber、SearchByVehicle等中的部分视图 我正试图加载视图,并通过从不同的视图发布类似www.example.com/search?number=101010的querystring链接来执行对不同表单的搜索 对于第一个表单,SearchByNumber我只有一个参数,stringnumber,我返回的是带有动态模型的视图,它的工作方式应该是这样的,但是我只设法搜索这个表单 这是我的控制器: public Act
public ActionResult Index(string number)
{
return View(model: number);
}
我认为:
<form id="searchbynumberform">
Search By Any Number:
<div class="input-group input-group-sm">
<input type="text" class="form-control" name="number" id="number" value="@Model">
<span class="input-group-btn">
<button class="btn btn-primary" type="button" name="numbersearch" id="numbersearch" disabled>
Search
</button>
</span>
</div>
</form>
按任意号码搜索:
搜寻
我的问题是,如果有人能帮助我,如何在第二个表单上执行搜索,比如说,在第二个表单上,我有int类型和字符串名称参数
提前感谢您……目前您的
型号
只是输入的搜索字符串,似乎不完整。如果模型
也包含实际的搜索结果,这将更有意义,毕竟这是用户想要看到的。然后还可以添加其他搜索属性
MVC方法是在项目中的某个地方创建(视图)模型类,如下所示:
public class SearchModel
{
public string Number { get; set; }
public int? Type { get; set; }
public string Name { get; set; }
public List<SearchResult> SearchResults { get; set; }
}
public ActionResult Index(string number)
{
var model = new SearchModel
{
Number = number,
SearchResults = GetByNumber(number)
};
return View(model);
}
public ActionResult IndexOther(int type, int name)
{
var model = new SearchModel
{
Type = type,
Name = name,
SearchResults = GetByTypeAndName(type, name)
};
return View(model);
}
在您的Index.cshtml
中:
@model SearchModel
@*您现在可以使用Model.Number、Model.Type、Model.Name和Model.SearchResults*@
实现第二种搜索类型究竟让您感到困惑的是什么?听起来你只是需要另一个动作方法来接受这些不同的参数。@ADyson很困惑,如何为动态模型分配多个参数?不清楚“动态”到底是什么意思?据我所知,有两种不同的形式,有两组不同的搜索参数。因此,您只需要两个接受不同参数的操作方法。它们都可以在下面运行相同类型的内容,甚至返回相同的视图。或者,如果您希望两个表单都发布到相同的操作,则可以使用viewmodel,它是一个包含所有潜在搜索属性的对象(即基于您定义的类)。当然,每个表单只会提交其中的一部分,因此您需要检查哪些属性具有值,并在此基础上执行搜索。