1

我目前正在编写一个网络应用程序,它需要将一些配置设置从设置页面传递到带有搜索框的页面页面。

目前我将配置数据从设置页面传递到主页:

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" />
}

我的问题是如何将配置设置传递给局部视图?这几天我一直在想这个问题,我真的很困惑。

4

2 回答 2

2

您可以创建一个视图模型,它将像这样存储您的配置设置

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);     
} 

如果您再次想将配置传递给控制器​​,那么

@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" /> 
} 
于 2012-04-23T11:48:35.367 回答
0

您的意思是要在服务器上的 Search 操作方法中获取配置设置吗?要干净利落地执行此操作,您要么必须将它们往返于客户端并返回,这似乎不合逻辑且可能不安全(取决于您的配置中的内容),或者您需要在 Search 操作本身中再次检索它们。

于 2012-04-23T11:49:00.813 回答