我们可以在TagHelper中使用此属性获取ModelExpression
:
[HtmlAttributeName("asp-for")]
public ModelExpression For { get; set; }
我以某种方式设法*让ViewModel具有ModelExpression
属性:
public class TemplateViewModel
{
public ModelExpression For { get; set; }
}
每当我尝试传递它时,模型表达式都是来自For
的{{1}},而不是存储在TemplateViewModel
中的真实表达式:
For
以上结果:
@model TemplateViewModel
<input asp-for="@Model.For" class="form-control"/>
我预料到输入,由<input class="form-control" type="text" id="For" name="For" value="Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression" />
描述,而不是文字ModelExpression
为ModelExpression
。
*因为我想使用ModelExpression
获得TagHelper的模板视图。这个例子很重要。我的主要动机是创建一个IHtmlHelper::PartialView()
TagHelper,它生成一个Bootstrap Form Group。
答案 0 :(得分:0)
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
File destination = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
FileOutputStream fo;
try {
destination.createNewFile();
fo = new FileOutputStream(destination);
fo.write(bytes.toByteArray());
fo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String path = destination.getPath();
Uri bmpUri = Uri.parse("file://" + destination.getAbsolutePath());
//Uri bmpUri = Uri.parse(path);
String body = "…Check it out for yourself !";
TweetComposer.Builder builder = new TweetComposer.Builder(this)
.text(body)
.image(bmpUri);
builder.show();
作为Razor Compiler中的特例处理,因此无法直接使用。由于编译器是开源的,因此您可以建议使用补丁来忽略属性本身为ModelExpression
的情况。与此同时,您需要在代码帮助程序中使用不同类型的属性,以帮助您获得对实际ModelExpression
的引用。也许是ModelExpression
?