我需要创建自定义@Html.Partial()
方法。
使用案例
我有一个.cshtml页面,其中有多个部分,如下所示
<!-- EDUCATION -->
@Html.Partial("Templates/Create/Modules/Education")
<!-- JOBS -->
@Html.Partial("Templates/Create/Modules/Jobs")
我希望能够创建自定义.Partial()
方法。像这样的东西
@Html.CustomPartial("Templates/Create/Modules/Jobs", "jobs", "edit")
最后两个参数分别为module id
和action type id
。使用这些值,我将在CustomPartial
中确定我需要在输出中显示的内容。
我不知道该如何解决这个问题。请指教。
或者,如果有人可以指向我Html.Partial
的源代码,那也会非常有帮助。
答案 0 :(得分:2)
您已经可以使用接受@Html.Partial()
ViewDataDictionary
重叠来执行此操作
@Html.Partial("Templates/Create/Modules/Jobs", new ViewDataDictionary { { "module", someValue }, {"edit", anotherValue }})
然后在部分
@if(ViewData["module"] == someValue)
{
// do something
}
else
{
// do something else
}
如果您仍然感兴趣,here is the source code
答案 1 :(得分:0)
这对我有用
public static class CustomHtmlHelpers
{
public static MvcHtmlString RenderModule(this HtmlHelper helper,
string partialViewName,
string moduleName,
string actionType)
{
var isAccessAllowed = _someService.someMethod(userId, moduleName, actionType);
if (isAccessAllowed)
{
return helper.Partial(partialViewName);
}
else
{
return MvcHtmlString.Empty;
}
}
}
答案 2 :(得分:0)
private val DB_PATH = "/data/data/**YOUR_PACKAGE_NAME**/databases/"
private val DB_NAME = "**YOUR_DB_NAME**.db"
private fun copyDataBaseFromAssets(context: Context) {
var myInput: InputStream? = null
var myOutput: OutputStream? = null
try {
val folder = context.getDatabasePath("databases")
if (!folder.exists())
if (folder.mkdirs()) folder.delete()
myInput = context.assets.open("databases/$DB_NAME")
val outFileName = DB_PATH + DB_NAME
val f = File(outFileName)
if (f.exists())
return
myOutput = FileOutputStream(outFileName)
//transfer bytes from the inputfile to the outputfile
val buffer = ByteArray(1024)
var length: Int = myInput.read(buffer)
while (length > 0) {
myOutput!!.write(buffer, 0, length)
length = myInput.read(buffer)
}
//Close the streams
myOutput!!.flush()
myOutput.close()
myInput.close()
} catch (e: IOException) {
e.printStackTrace()
}
}