我目前正在编写一个网页应用,需要将一些配置设置从设置页面传递到带有搜索框的页面页面。
目前我将配置数据从设置页面传递到主页:
public ActionResult Settings(Configuration configuration)
{
return RedirectToAction("ConfigSet", "Home", configuration);
}
在家庭控制器中:
public ActionResult ConfigSet(Configuration configuration)
{
return View("Index");
}
我正在生成部分视图:
public PartialViewResult Search(string q)
{
List<Stuff> results = this.Search(q);
return PartialView("SearchResults", results);
}
部分视图呈现如下:
@using (Ajax.BeginForm("Search", "Home", new AjaxOptions {
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "searchResults",
}))
{
<input type="text" name="searchString" />
<input type="submit" value="Search" />
}
我的问题是如何将配置设置传递给局部视图?我已经考虑了几天,我真的很困惑。
答案 0 :(得分:2)
您可以创建一个viewModel,它将存储您的配置设置,如
public class MyViewModel
{
public Configuration configuration {get;set;}
public List<Stuff> results {get;set;}
}
&安培;在您的操作中返回MyViewModel
public PartialViewResult Search(Configuration config)
{
var model = new MyViewModel();
//set its properties
model.results = this.Search(q);
model.configuration = configurationObject;
return PartialView("SearchResults", model);
}
如果您再次想要将配置传递给控制器,那么</ p>
@using (Ajax.BeginForm("Search", "Home", new { config = Model.configuration } new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "searchResults", }))
{
<input type="text" name="searchString" />
<input type="submit" value="Search" />
}
答案 1 :(得分:0)
您是否想要在服务器上的“搜索”操作方法中获取配置设置?要干净利落地完成它,您要么必须将它们往返于客户端并返回,这看似不合逻辑且可能不安全(取决于您的配置中的内容),或者您需要在“搜索”操作本身内再次检索它们。