Tôi đang xây dựng trang ASP.NET MVC nơi tôi đang sử dụng Lucene.Net cho các truy vấn tìm kiếm. Tôi asked a question here về cách cấu trúc đúng cách sử dụng Lucene.Net trong một ứng dụng ASP.NET MVC và được cho biết rằng phương pháp tốt nhất là khai báo IndexWriter
của tôi là public static
, để nó có thể được tái sử dụng.Sử dụng Server.MapPath() bên trong một trường tĩnh trong ASP.NET MVC
Dưới đây là một số mã có nghĩa là ở đầu SearchController tôi:
public static string IndexLocation = Server.MapPath("~/lucene");
public static Lucene.Net.Analysis.Standard.StandardAnalyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer();
public static IndexWriter writer = new IndexWriter(IndexLocation,analyzer);
Như writer
là tĩnh, IndexLocation
cũng phải tĩnh. Do đó, trình biên dịch là cho tôi những lỗi sau đây cho Server.MapPath()
:
Một tham chiếu đối tượng là cần thiết cho các phi trường tĩnh, phương pháp, hoặc tài sản 'System.Web.Mvc.Controller.Server.get'
Có cách nào cách sử dụng Server.MapPath() hoặc nội dung nào đó tương tự từ trường tĩnh? Làm thế nào tôi có thể sửa lỗi này?
Cảm ơn bạn trước.
Chức năng này đã cho tôi một lỗi như là kết quả returbed bởi HostingEnvironment.MapPath không giống như Server.MapPath, sau này trả lại một url tuyệt đối không phải là một url tương đối – John
@ john, tôi nhận được cùng một giá trị cho cả hai. – ps2goat